📅  最后修改于: 2023-12-03 15:40:21.878000             🧑  作者: Mango
在软件开发中,构建完成后执行特定动作是非常有用的,可以自动化一些重复性工作,提高开发效率。而当我们需要在构建完成时让机器“颤动”时,该怎么办呢?
所谓构建,就是将一些源代码编译、打包、部署成可执行的软件的过程。在大部分构建工具的机制中,可以在构建完成之后执行自定义的动作。
“颤动”这个词儿很有趣,它不仅可以形容机器的震动,同时还有“激动、抖擞起来”的意思。在软件开发中,“颤动”就代表着一些特定的操作,比如通知一个群组、发送一封邮件、打印一份日志等,这些基本上都是和人主观感受相关的动作,即完成后会让人有些激动。
通过一些流行的构建工具,比如Jenkins、Travis CI、CircleCI等,我们可以非常简单地在构建完成时执行自定义的一些脚本来实现“颤动”的目的。
在Jenkins Pipeline中,可以使用post步骤来指定在构建完成后执行的一些动作。比如:
pipeline {
agent any
stages {
stage('Build') {
steps {
// 构建代码的操作
}
}
}
post {
always {
// 总是执行的操作
}
success {
// 构建成功时执行的操作
}
failure {
// 构建失败时执行的操作
}
}
}
在上面的代码中,我们指定了总是执行的操作、构建成功时执行的操作和构建失败时执行的操作。这些操作可以是任何你想要执行的动作。
在Travis CI中,可以使用after_success和after_failure来分别指定在构建成功和构建失败时要执行的脚本。比如:
language: node_js
node_js:
- "8"
after_success:
- echo "构建成功,可以来点颤动了!"
after_failure:
- echo "构建失败,继续完善代码吧!"
在上面的代码中,我们指定了构建成功时要执行的动作和构建失败时要执行的动作。同样,这些操作可以是任何你想要执行的动作。
在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成功还是失败都要执行。
通过构建工具的特性,我们可以很容易地在构建完成后执行自定义的动作。这些动作可以是任何你想要执行的操作,比如发送通知、打印日志等等。在软件开发中,这样的自动化操作可以大大提高开发效率,减少人的主观感受对工作的干扰。