web-dev-qa-db-ja.com

Gitlab CIスクリプト:ブランチを除外する

YMLファイルで説明されているプロジェクトビルドスクリプトを改善しようとしています。改善自体は非常に簡単に思えますが、自動ビルドを誤って台無しにするという考えは少し怖いです。

現在、プロジェクトにはいくつかのブランチ、バージョンタグ、その他のものがあります。

異なるプラットフォームでビルドをテストするために仮想マシン間で巨大なプロジェクトを何らかの方法でコピーすることはまったく便利ではないため、ランナーによってビルドされていない開発ブランチが役立ちます。したがって、ビルドから「prj-dev」ブランチを除外したいと思います。

そして、そこにあります:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build
 stage: build
 script:
  # something complex

job1:
 tags:
 - linux
 stage: linuxbuild
 script:
  # something else complex

私はグーグルで検索し、次のような解決策を見つけました:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build 
 branches:
  except:
    - *dev-only

しかし、私たちのパイプラインはかなり異なっているようです。タグはgitタグではなく、パイプラインタグです。だから、私はむしろ次のような設定を使用することを検討しています:

stages:
 - build
 - linuxbuild
job:
 tags:
 - win2008build 
 except:
   branches:
    - *dev-only

...これは「通常どおりにビルドするが、私のブランチではない」という意味です。両方の方法を試すことには複雑さがあります、私は誰かが確かにレシピを知っているべきであるとかなり確信しています。

ですから、よろしければ、パイプラインを変更せずにdevブランチを除外するにはどうすればよいですか、構成のみですか?それは可能ですか?

6
MasterAler

gitlab-ci.ymlファイルでexceptを使用し、次のようにブランチをすぐ下に追加するだけです。

mybuild:
    stage: test
    image: somedockerimage
    script:
        - some script running
    except:
        - branch-name

これは問題なく私のプロジェクトに取り組んでいます。

7
Thomas Löffler