当前,我将Gitlab设置为每当我推送到分支时,都会使用webhook触发Jenkins中的构建。我在Jenkins中使用插件updateKeepAlive()
,以便该构建可以在所有分支上运行。
但是我在Jenkins中看到您需要将脚本放入 Jenkinsfile 中,但是我找不到如何在这种配置下运行ruby脚本的很好的参考。
这些是我需要完成的任务
// class PersistantTab extends StatefulWidget ...
class _PersistantTabState extends State<PersistantTab>
with AutomaticKeepAliveClientMixin {
bool keepAlive = false;
@override
void initState() {
doAsyncStuff();
}
Future doAsyncStuff() async {
keepAlive = true;
updateKeepAlive();
// Keeping alive...
await Future.delayed(Duration(seconds: 10));
keepAlive = false;
updateKeepAlive();
// Can be disposed whenever now.
}
@override
bool get wantKeepAlive => keepAlive;
@override
Widget build(BuildContext context) {
return Container();
}
}
如何将这些脚本放入Jenkinsfile
Multibranch Pipeline
答案 0 :(得分:1)
您可以将所有脚本放入一个ruby文件中,并运行如下代码:
sh 'ruby ./script.rb'
答案 1 :(得分:0)
@SatyamSingh描述的脚本示例如下:
install.sh
gem install bundler
bundle install
cp config/database-gitlab.yml config/database.yml
bundle exec rake db:create db:migrate RAILS_ENV=test
bundle exec rake test
Jenkinsfile
node {
...
stage ('Clone') {
checkout scm
}
stage ('Build') {
sh gem install bundler
sh bundle install
sh cp config/database-gitlab.yml config/database.yml
sh bundle exec rake db:create db:migrate RAILS_ENV=test
sh bundle exec rake test
....
}
stage ('Tests') {
...
}
...
}
以上两项均应属于您的项目SCM存储库。 Jenkinsfile在“ Build”阶段执行步骤中的每个Shell命令。