Update GitHub actions configuration (#548)
authorDavid Taylor <david@taylorhq.com>
Fri, 18 Jun 2021 11:55:06 +0000 (12:55 +0100)
committerGitHub <noreply@github.com>
Fri, 18 Jun 2021 11:55:06 +0000 (12:55 +0100)
- 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
image/auto_build.rb

index 888a0eaf9706e4294eeb3f278fe61a234a5518cc..45215087bc180b58c271a4b642c2b89cd99e54cb 100644 (file)
@@ -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: |
index 70415db661e28417310e7ffdd8bfc2509cc68bc1..814f86edf3ab44682df0da9b9b29f3638708f580 100644 (file)
@@ -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