diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 000000000..1f79b9cc9 --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,82 @@ +name: merge + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'v2' + tags: + - 'v*' + workflow_dispatch: + +jobs: + e2e: + name: Build and test + runs-on: ${{ matrix.os }} + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + os: [desktop-windows, desktop-macos, desktop-m1] + # mode: [plugin, standalone] + mode: [plugin] + env: + GO111MODULE: "on" + steps: + - name: test-action-unsafe-checkout + if: ${{ contains(matrix.os, 'desktop-windows') }} + run: | + git config --global --add safe.directory C:/actions-runner/_work/compose/compose + - uses: actions/checkout@v3 + + # TODO(milas): revert to @v3 after next actions/setup-go minor release + - uses: actions/setup-go@f27981397569ab1d623dab1f29d3db81b75b5258 + with: + go-version-file: go.mod + cache: true + check-latest: true + + - name: Check arch of go binary + run: | + which go + file $(which go) + if: ${{ !contains(matrix.os, 'desktop-windows') }} + + - name: List Docker resources on machine + run: | + docker ps --all + docker volume ls + docker network ls + docker image ls + - name: Remove Docker resources on machine + continue-on-error: true + run: | + docker kill $(docker ps -q) + docker rm -f $(docker ps -aq) + docker volume rm -f $(docker volume ls -q) + docker ps --all + + - name: Unit tests + run: make test + + - name: Build binaries + run: | + make + - name: Check arch of go compose binary + run: | + file ./bin/build/docker-compose + if: ${{ !contains(matrix.os, 'desktop-windows') }} + - + name: Test plugin mode + if: ${{ matrix.mode == 'plugin' }} + run: | + make e2e-compose + - + name: Test standalone mode + if: ${{ matrix.mode == 'standalone' }} + run: | + make e2e-compose-standalone + diff --git a/pkg/e2e/buffer.go b/pkg/e2e/buffer.go index 787e6c358..b97b81d01 100644 --- a/pkg/e2e/buffer.go +++ b/pkg/e2e/buffer.go @@ -60,7 +60,7 @@ func (l *lockedBuffer) RequireEventuallyContains(t testing.TB, v string) { "Error: %v", err) } return strings.Contains(bufContents.String(), v) - }, 2*time.Second, 20*time.Millisecond, + }, 5*time.Second, 20*time.Millisecond, "Buffer did not contain %q\n============\n%s\n============", v, &bufContents) } diff --git a/pkg/e2e/pause_test.go b/pkg/e2e/pause_test.go index a91c7a202..d70d8cb38 100644 --- a/pkg/e2e/pause_test.go +++ b/pkg/e2e/pause_test.go @@ -98,7 +98,7 @@ func TestPauseServiceAlreadyPaused(t *testing.T) { // launch a and wait for it to come up cli.RunDockerComposeCmd(t, "up", "-d", "a") - HTTPGetWithRetry(t, urlForService(t, cli, "a", 80), http.StatusOK, 50*time.Millisecond, 5*time.Second) + HTTPGetWithRetry(t, urlForService(t, cli, "a", 80), http.StatusOK, 50*time.Millisecond, 10*time.Second) // pause a twice - first time should pass, second time fail cli.RunDockerComposeCmd(t, "pause", "a") diff --git a/pkg/e2e/up_test.go b/pkg/e2e/up_test.go index c0ba517bf..e85982964 100644 --- a/pkg/e2e/up_test.go +++ b/pkg/e2e/up_test.go @@ -1,3 +1,6 @@ +//go:build !windows +// +build !windows + /* Copyright 2022 Docker Compose CLI authors