Ver Fonte

Merge pull request #1099 from docker/separate_test_workflows

Split optional CI workflows to allow re-running only ACI, ECS or Windows
Guillaume Tardif há 4 anos atrás
pai
commit
e6b0825ffc

+ 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
 
 [![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
 Elastic Container Service