From 3355f8644e967525710a18e371f627ba44112294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=BE=D0=B2=D0=B0=D1=80=D0=B8=D1=89=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=B8=D1=81=D1=82?= <46831212+ComradeProgrammer@users.noreply.github.com> Date: Sat, 18 Dec 2021 20:44:27 +0800 Subject: [PATCH] fix: modify image push policy (#377) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Товарищ <2962928213@qq.com> --- .github/workflows/build.yml | 49 ++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c4976ff4..c66914c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,6 +14,7 @@ jobs: - run: yarn install && CI=false yarn run build working-directory: ./web + backend: name: Back-end runs-on: ubuntu-latest @@ -28,8 +29,8 @@ jobs: go build -race -ldflags "-extldflags '-static'" working-directory: ./ - release: - name: Release + release-and-push: + name: Release And Push runs-on: ubuntu-latest if: github.repository == 'casbin/casdoor' && github.event_name == 'push' needs: [ frontend, backend ] @@ -42,26 +43,52 @@ jobs: uses: actions/setup-node@v2 with: node-version: 12 + + - name: Fetch Previous version + id: get-previous-tag + uses: actions-ecosystem/action-get-latest-tag@v1 + - name: Release run: yarn global add semantic-release@17.4.4 && semantic-release env: GH_TOKEN: ${{ secrets.GH_BOT_TOKEN }} - publish: - name: Publish - runs-on: ubuntu-latest - if: github.repository == 'casbin/casdoor' && github.event_name == 'push' - needs: release - steps: - - name: Check out the repo - uses: actions/checkout@v2 + - name: Fetch Current version + id: get-current-tag + uses: actions-ecosystem/action-get-latest-tag@v1 + + - name: Decide Should_Push Or Not + id: should_push + run: | + old_version=${{steps.get-previous-tag.outputs.tag}} + new_version=${{steps.get-current-tag.outputs.tag }} + + old_array=(${old_version//\./ }) + new_array=(${new_version//\./ }) + + if [ ${old_array[0]} != ${new_array[0]} ] + then + echo ::set-output name=push::'true' + elif [ ${old_array[1]} != ${new_array[1]} ] + then + echo ::set-output name=push::'true' + + else + echo ::set-output name=push::'false' + + fi + - name: Log in to Docker Hub uses: docker/login-action@v1 + if: github.repository == 'casbin/casdoor' && github.event_name == 'push' &&steps.should_push.outputs.push=='true' with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Push to Docker Hub uses: docker/build-push-action@v2 + if: github.repository == 'casbin/casdoor' && github.event_name == 'push' && steps.should_push.outputs.push=='true' with: push: true - tags: casbin/casdoor:latest + tags: casbin/casdoor:${{steps.get-current-tag.outputs.tag }}