浏览代码

Merge pull request #1099 from docker/separate_test_workflows

Split optional CI workflows to allow re-running only ACI, ECS or Windows
Guillaume Tardif 5 年之前
父节点
当前提交
e6b0825ffc
共有 5 个文件被更改,包括 178 次插入148 次删除
  1. 53 0
      .github/workflows/aci-tests.yml
  2. 57 0
      .github/workflows/ecs-tests.yml
  3. 0 147
      .github/workflows/optional-ci.yml
  4. 67 0
      .github/workflows/windows-ci.yml
  5. 1 1
      README.md

+ 53 - 0
.github/workflows/aci-tests.yml

@@ -0,0 +1,53 @@
+name: ACI integration tests
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+
+jobs:
+  check-optional-tests:
+    name: Check if needs to run ACI tests
+    runs-on: ubuntu-latest
+    outputs:
+      trigger-aci: ${{steps.runacitest.outputs.triggered}}
+    steps:
+      - uses: khan/pull-request-comment-trigger@master
+        name: Check if test ACI
+        if: github.event_name == 'pull_request'
+        id: runacitest
+        with:
+          trigger: '/test-aci'
+
+  aci-tests:
+    name: ACI e2e tests
+    runs-on: ubuntu-latest
+    env:
+      GO111MODULE: "on"
+    needs: check-optional-tests
+    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-aci == 'true'
+    steps:
+      - name: Set up Go 1.15
+        uses: actions/setup-go@v1
+        with:
+          go-version: 1.15
+        id: go
+
+      - name: Checkout code into the Go module directory
+        uses: actions/checkout@v2
+
+      - uses: actions/cache@v2
+        with:
+          path: ~/go/pkg/mod
+          key: go-${{ hashFiles('**/go.sum') }}
+
+      - name: Build for ACI e2e tests
+        run: make -f builder.Makefile cli
+
+      - name: ACI e2e Test
+        env:
+          AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+          AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+          AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+        run: make e2e-aci

+ 57 - 0
.github/workflows/ecs-tests.yml

@@ -0,0 +1,57 @@
+name: ECS integration tests
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+
+jobs:
+  check-optional-tests:
+    name: Check if needs to run ECS tests
+    runs-on: ubuntu-latest
+    outputs:
+      trigger-ecs: ${{steps.runecstest.outputs.triggered}}
+    steps:
+      - uses: khan/pull-request-comment-trigger@master
+        name: Check if test ECS
+        if: github.event_name == 'pull_request'
+        id: runecstest
+        with:
+          trigger: '/test-ecs'
+
+
+  ecs-tests:
+    name: ECS e2e tests
+    runs-on: ubuntu-latest
+    env:
+      GO111MODULE: "on"
+    needs: check-optional-tests
+    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-ecs == 'true'
+    steps:
+      - name: Set up Go 1.15
+        uses: actions/setup-go@v1
+        with:
+          go-version: 1.15
+        id: go
+
+      - name: Checkout code into the Go module directory
+        uses: actions/checkout@v2
+
+      - uses: actions/cache@v2
+        with:
+          path: ~/go/pkg/mod
+          key: go-${{ hashFiles('**/go.sum') }}
+
+      - name: Build for ECS e2e tests
+        run: make -f builder.Makefile cli
+
+      - name: create aws config folder
+        run: mkdir -p ~/.aws
+
+      - name: ECS e2e Test
+        env:
+          AWS_DEFAULT_REGION: us-west-2
+          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
+          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
+        run: make e2e-ecs

+ 0 - 147
.github/workflows/optional-ci.yml

@@ -1,147 +0,0 @@
-name: Cloud integration tests
-
-on:
-  push:
-    branches:
-      - main
-  pull_request:
-
-jobs:
-  check-optional-tests:
-    name: Check if needs to run ACI or Windows tests
-    runs-on: ubuntu-latest
-    outputs:
-      trigger-aci: ${{steps.runacitest.outputs.triggered}}
-      trigger-ecs: ${{steps.runecstest.outputs.triggered}}
-      trigger-windows: ${{steps.runwindowstest.outputs.triggered}}
-    steps:
-      - uses: khan/pull-request-comment-trigger@master
-        name: Check if test ACI
-        if: github.event_name == 'pull_request'
-        id: runacitest
-        with:
-          trigger: '/test-aci'
-      - uses: khan/pull-request-comment-trigger@master
-        name: Check if test Windows
-        if: github.event_name == 'pull_request'
-        id: runwindowstest
-        with:
-          trigger: '/test-windows'
-      - uses: khan/pull-request-comment-trigger@master
-        name: Check if test ECS
-        if: github.event_name == 'pull_request'
-        id: runecstest
-        with:
-          trigger: '/test-ecs'
-
-  aci-tests:
-    name: ACI e2e tests
-    runs-on: ubuntu-latest
-    env:
-      GO111MODULE: "on"
-    needs: check-optional-tests
-    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-aci == 'true'
-    steps:
-      - name: Set up Go 1.15
-        uses: actions/setup-go@v1
-        with:
-          go-version: 1.15
-        id: go
-
-      - name: Checkout code into the Go module directory
-        uses: actions/checkout@v2
-
-      - uses: actions/cache@v2
-        with:
-          path: ~/go/pkg/mod
-          key: go-${{ hashFiles('**/go.sum') }}
-
-      - name: Build for ACI e2e tests
-        run: make -f builder.Makefile cli
-
-      - name: ACI e2e Test
-        env:
-          AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
-          AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
-          AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
-        run: make e2e-aci
-
-  ecs-tests:
-    name: ECS e2e tests
-    runs-on: ubuntu-latest
-    env:
-      GO111MODULE: "on"
-    needs: check-optional-tests
-    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-ecs == 'true'
-    steps:
-      - name: Set up Go 1.15
-        uses: actions/setup-go@v1
-        with:
-          go-version: 1.15
-        id: go
-
-      - name: Checkout code into the Go module directory
-        uses: actions/checkout@v2
-
-      - uses: actions/cache@v2
-        with:
-          path: ~/go/pkg/mod
-          key: go-${{ hashFiles('**/go.sum') }}
-
-      - name: Build for ECS e2e tests
-        run: make -f builder.Makefile cli
-
-      - name: create aws config folder
-        run: mkdir -p ~/.aws
-
-      - name: ECS e2e Test
-        env:
-          AWS_DEFAULT_REGION: us-west-2
-          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
-          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
-        run: make e2e-ecs
-
-  windows-build:
-    name: Windows Build
-    runs-on: windows-latest
-    env:
-      GO111MODULE: "on"
-    needs: check-optional-tests
-    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-windows == 'true'
-    steps:
-      - name: Set up Go 1.15
-        uses: actions/setup-go@v1
-        with:
-          go-version: 1.15
-        id: go
-
-      - name: Checkout code into the Go module directory
-        uses: actions/checkout@v2
-
-      - uses: actions/cache@v2
-        with:
-          path: ~/go/pkg/mod
-          key: go-${{ hashFiles('**/go.sum') }}
-
-      - name: Test
-        env:
-          BUILD_TAGS: example,local
-        run: make -f builder.Makefile test
-
-      - name: Build
-        env:
-          BUILD_TAGS: example,local,e2e
-        run: make -f builder.Makefile cli
-
-      - name: E2E Test
-        run: make e2e-win-ci
-
-      - name: ACI e2e Test
-        env:
-          AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
-          AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
-          AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
-        # need to docker logout on windows nodes, it seems GHActions does a `docker login --user githubactions` specifically on windows nodes
-        run: |
-          docker logout
-          make e2e-aci

+ 67 - 0
.github/workflows/windows-ci.yml

@@ -0,0 +1,67 @@
+name: Windows CI
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+
+jobs:
+  check-optional-tests:
+    name: Check if needs to run Windows build and tests
+    runs-on: ubuntu-latest
+    outputs:
+      trigger-windows: ${{steps.runwindowstest.outputs.triggered}}
+    steps:
+      - uses: khan/pull-request-comment-trigger@master
+        name: Check if test Windows
+        if: github.event_name == 'pull_request'
+        id: runwindowstest
+        with:
+          trigger: '/test-windows'
+
+
+  windows-build:
+    name: Windows Build
+    runs-on: windows-latest
+    env:
+      GO111MODULE: "on"
+    needs: check-optional-tests
+    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-windows == 'true'
+    steps:
+      - name: Set up Go 1.15
+        uses: actions/setup-go@v1
+        with:
+          go-version: 1.15
+        id: go
+
+      - name: Checkout code into the Go module directory
+        uses: actions/checkout@v2
+
+      - uses: actions/cache@v2
+        with:
+          path: ~/go/pkg/mod
+          key: go-${{ hashFiles('**/go.sum') }}
+
+      - name: Test
+        env:
+          BUILD_TAGS: example,local
+        run: make -f builder.Makefile test
+
+      - name: Build
+        env:
+          BUILD_TAGS: example,local,e2e
+        run: make -f builder.Makefile cli
+
+      - name: E2E Test
+        run: make e2e-win-ci
+
+      - name: ACI e2e Test
+        env:
+          AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+          AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+          AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+        # need to docker logout on windows nodes, it seems GHActions does a `docker login --user githubactions` specifically on windows nodes
+        run: |
+          docker logout
+          make e2e-aci

+ 1 - 1
README.md

@@ -1,7 +1,7 @@
 # Docker Compose CLI
 # Docker Compose CLI
 
 
 [![Actions Status](https://github.com/docker/compose-cli/workflows/Continuous%20integration/badge.svg)](https://github.com/docker/compose-cli/actions)
 [![Actions Status](https://github.com/docker/compose-cli/workflows/Continuous%20integration/badge.svg)](https://github.com/docker/compose-cli/actions)
-[![Actions Status](https://github.com/docker/compose-cli/workflows/Cloud%20integration%20tests/badge.svg)](https://github.com/docker/compose-cli/actions)
+[![Actions Status](https://github.com/docker/compose-cli/workflows/Windows%20CI/badge.svg)](https://github.com/docker/compose-cli/actions)
 
 
 This CLI tool makes it easy to run Docker containers and Docker Compose applications in the cloud using either Amazon
 This CLI tool makes it easy to run Docker containers and Docker Compose applications in the cloud using either Amazon
 Elastic Container Service
 Elastic Container Service