📜  构建完成时执行动作颤动 (1)

📅  最后修改于: 2023-12-03 15:40:21.878000             🧑  作者: Mango

构建完成时执行动作颤动

在软件开发中,构建完成后执行特定动作是非常有用的,可以自动化一些重复性工作,提高开发效率。而当我们需要在构建完成时让机器“颤动”时,该怎么办呢?

概述

所谓构建,就是将一些源代码编译、打包、部署成可执行的软件的过程。在大部分构建工具的机制中,可以在构建完成之后执行自定义的动作。

“颤动”这个词儿很有趣,它不仅可以形容机器的震动,同时还有“激动、抖擞起来”的意思。在软件开发中,“颤动”就代表着一些特定的操作,比如通知一个群组、发送一封邮件、打印一份日志等,这些基本上都是和人主观感受相关的动作,即完成后会让人有些激动。

实现方法

通过一些流行的构建工具,比如Jenkins、Travis CI、CircleCI等,我们可以非常简单地在构建完成时执行自定义的一些脚本来实现“颤动”的目的。

Jenkins

在Jenkins Pipeline中,可以使用post步骤来指定在构建完成后执行的一些动作。比如:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                // 构建代码的操作
            }
        }
    }
    post {
        always {
            // 总是执行的操作
        }
        success {
            // 构建成功时执行的操作
        }
        failure {
            // 构建失败时执行的操作
        }
    }
}

在上面的代码中,我们指定了总是执行的操作、构建成功时执行的操作和构建失败时执行的操作。这些操作可以是任何你想要执行的动作。

Travis CI

在Travis CI中,可以使用after_success和after_failure来分别指定在构建成功和构建失败时要执行的脚本。比如:

language: node_js
node_js:
  - "8"
after_success:
  - echo "构建成功,可以来点颤动了!"
after_failure:
  - echo "构建失败,继续完善代码吧!"

在上面的代码中,我们指定了构建成功时要执行的动作和构建失败时要执行的动作。同样,这些操作可以是任何你想要执行的动作。

CircleCI

在CircleCI中,可以通过添加一个workflow来在构建完成后执行自定义的步骤。比如:

version: 2.1
jobs:
  build:
    docker:
      - image: circleci/node
    working_directory: ~/repo
    steps:
      - checkout
      - run: npm install
      - run: npm test
  notify_devs:
    docker:
      - image: alpine
    environment:
      SLACK_WEBHOOK_URL: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
    steps:
      - run: ./notify-developers.sh
workflows:
  version: 2
  build-and-notify:
    jobs:
      - build
      - notify_devs:
          requires:
            - build
          when: always

在上面的代码中,我们定义了一个workflow,其中包含两个job:build和notify_devs。build是构建的操作,notify_devs是构建完成后发送通知的操作。在workflow中,我们指定了notify_devs要在build后执行,并且无论build成功还是失败都要执行。

结论

通过构建工具的特性,我们可以很容易地在构建完成后执行自定义的动作。这些动作可以是任何你想要执行的操作,比如发送通知、打印日志等等。在软件开发中,这样的自动化操作可以大大提高开发效率,减少人的主观感受对工作的干扰。