Parcourir la source

Separate Docker image's GitHub release into its own job to run it only once

- fix naming of Docker image's GitHub releases
tyranron il y a 4 ans
Parent
commit
b31b004922
1 fichiers modifiés avec 13 ajouts et 10 suppressions
  1. 13 10
      .github/workflows/docker.yml

+ 13 - 10
.github/workflows/docker.yml

@@ -1,11 +1,13 @@
 name: Docker CI
 
+
 on:
   pull_request:
   push:
   schedule:
     - cron: '13 13 * * 3'
 
+
 jobs:
   buildx:
     strategy:
@@ -17,8 +19,6 @@ jobs:
             publish: ${{ github.event_name == 'push'
                          && (startsWith(github.ref, 'refs/tags/docker/')
                              || github.ref == 'refs/heads/master') }}
-            release: ${{ github.event_name == 'push'
-                         && startsWith(github.ref, 'refs/tags/docker/') }}
 
           - dockerfile: alpine
             cache: ${{ github.ref != 'refs/heads/master'
@@ -26,8 +26,6 @@ jobs:
             publish: ${{ github.event_name == 'push'
                          && (startsWith(github.ref, 'refs/tags/docker/')
                              || github.ref == 'refs/heads/master') }}
-            release: ${{ github.event_name == 'push'
-                         && startsWith(github.ref, 'refs/tags/docker/') }}
 
     runs-on: ubuntu-latest
     steps:
@@ -115,14 +113,14 @@ jobs:
                   DOCKERFILE=${{ matrix.dockerfile }}
                   ref=${{ fromJSON(steps.git.outputs.result).ref }}
         working-directory: ./docker/coturn
-        if: ${{ matrix.release }}
+        if: ${{ matrix.publish && github.ref != 'refs/heads/master' }}
 
       - name: Publish edge Docker tags
         run: make docker.push tags=edge-${{ matrix.dockerfile }}
                   DOCKERFILE=${{ matrix.dockerfile }}
                   ref=${{ fromJSON(steps.git.outputs.result).ref }}
         working-directory: ./docker/coturn
-        if: ${{ matrix.publish && !matrix.release }}
+        if: ${{ matrix.publish && github.ref == 'refs/heads/master' }}
 
 
       # On GitHub Container Registry README is automatically updated on pushes.
@@ -148,16 +146,22 @@ jobs:
         if: ${{ matrix.publish }}
 
 
+  release:
+    needs: ['buildx']
+    if: ${{ github.event_name == 'push'
+            && startsWith(github.ref, 'refs/tags/docker/') }}
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+
       - name: Parse release version from Git tag
         id: release
         run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/docker/}
-        if: ${{ matrix.release }}
 
       - name: Parse CHANGELOG link
         id: changelog
         run: echo ::set-output name=LINK::https://github.com/${{ github.repository }}/blob/docker/${{ steps.release.outputs.VERSION }}/docker/coturn/CHANGELOG.md#$(sed -n '/^## \[${{ steps.release.outputs.VERSION }}\]/{s/^## \[\(.*\)\][^0-9]*\([0-9].*\)/\1--\2/;s/[^0-9a-z-]*//g;p;}' CHANGELOG.md)
         working-directory: ./docker/coturn
-        if: ${{ matrix.release }}
 
       - name: Release on GitHub
         uses: actions/create-release@v1
@@ -165,7 +169,6 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         with:
           tag_name: docker/${{ steps.release.outputs.VERSION }}
-          release_name: ${{ steps.release.outputs.VERSION }}
+          release_name: docker/${{ steps.release.outputs.VERSION }}
           body: |
             [Changelog](${{ steps.changelog.outputs.LINK }})
-        if: ${{ matrix.release }}