独自の GitHub セルフホスト ランナーを持つ 3 つの Ubuntu PC があります。2 つのランナー (PC 1 および PC 2) にはtestというラベルが付けられ、3 番目 (PC 3) にはproductionというラベルが付けられています。さらに、すべてのランナーにはセルフホストのラベルが付けられます
GitHub にはdev、test、productionの 3 つのブランチがあります。目標は、プル リクエストをテスト ブランチまたは本番ブランチにマージすると、対象のラベルを持つすべてのランナーが新しいバージョンをプルし、Docker イメージ/コンテナーをビルドして構成することです。
この手順は PC 1 と PC 3 で機能し、テスト ブランチと運用ブランチでそれぞれマージします。ただし、テスト プル リクエストをマージした直後に PC 1 が「テスト ジョブ」を実行すると、PC 2 のランナーはアイドル状態のままになります。
PC 1 と PC2 のランナーのラベルが同じであることを再確認しました。何が間違っているのか、正しく理解していないのでしょうか? PC ごとにワークフロー ファイルを作成する必要がありますか?
ワークフロー ファイルtest.ymlは次のとおりです。
name: Test
on:
# Triggers the workflow on push to test branch.
push:
branches: [ test ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
build:
runs-on: [self-hosted, test]
- uses: actions/checkout@v2
with:
ref: test
# Pulling latest code from Github
- name: Pull, build, compose up
run: |
docker build -f Dockerfile -t test-1 .
docker-compose up -d