From 03d5606521bcc4147066d2d89ab20581d1d227fe Mon Sep 17 00:00:00 2001 From: David Taylor <david@taylorhq.com> Date: Fri, 18 Jun 2021 12:55:06 +0100 Subject: [PATCH] Update GitHub actions configuration (#548) - Only attempt dockerhub push if previous steps are successful - Make auto_build.rb exit with non-zero status if build fails - enable experimental features (--squash) for dev image build --- .github/workflows/build.yml | 17 +++++++++++------ image/auto_build.rb | 3 +++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 888a0ea..4521508 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ jobs: base: runs-on: [ubuntu-20.04] steps: - - name: Setup Docker + - name: enable experimental docker features run: | sudo bash -c 'echo "{ \"cgroup-parent\": \"/actions_job\",\"experimental\":true}" > /etc/docker/daemon.json' sudo service docker restart @@ -29,7 +29,7 @@ jobs: run: | docker run --rm -e RUBY_ONLY=1 -e USE_TURBO=1 -e SKIP_PLUGINS=1 -e SKIP_LINT=1 discourse/discourse_test:build - name: push to dockerhub - if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' + if: success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} run: | @@ -43,14 +43,19 @@ jobs: runs-on: [ubuntu-20.04] needs: base steps: + - name: enable experimental docker features + run: | + sudo bash -c 'echo "{ \"cgroup-parent\": \"/actions_job\",\"experimental\":true}" > /etc/docker/daemon.json' + sudo service docker restart + docker version -f '{{.Server.Experimental}}' - uses: actions/checkout@master with: fetch-depth: 1 - - name: build test_build image + - name: build discourse_test image run: | cd image && ruby auto_build.rb discourse_test_public - name: push to dockerhub - if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' + if: success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} run: | @@ -63,11 +68,11 @@ jobs: - uses: actions/checkout@master with: fetch-depth: 1 - - name: build test_build image + - name: build discourse_dev image run: | cd image && ruby auto_build.rb discourse_dev - name: push to dockerhub - if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' + if: success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} run: | diff --git a/image/auto_build.rb b/image/auto_build.rb index 70415db..814f86e 100644 --- a/image/auto_build.rb +++ b/image/auto_build.rb @@ -21,8 +21,11 @@ def run(command) rescue Errno::EIO # we are done end + Process.wait(pid) end + raise "'#{command}' exited with status #{$?.exitstatus}" if $?.exitstatus != 0 + lines end -- 2.25.1