From 178fbc54e3f5937165427200241b95e83605b79e Mon Sep 17 00:00:00 2001 From: mzz2017 <2017@duck.com> Date: Fri, 24 Mar 2023 13:32:49 +0800 Subject: [PATCH] chore(ci): split release into build and docker workflows --- .github/workflows/{release.yml => build.yml} | 47 +-------------- .github/workflows/docker.yml | 63 ++++++++++++++++++++ 2 files changed, 64 insertions(+), 46 deletions(-) rename .github/workflows/{release.yml => build.yml} (77%) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/release.yml b/.github/workflows/build.yml similarity index 77% rename from .github/workflows/release.yml rename to .github/workflows/build.yml index 1b7f1d9..aeff080 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Release +name: Build on: push: @@ -164,48 +164,3 @@ jobs: file: dae-${{ steps.get_filename.outputs.ASSET_NAME }}.zip* overwrite: true tag: ${{ github.ref }} - - docker: - runs-on: ubuntu-22.04 - steps: - - name: Checkout codebase - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Prepare - id: prep - env: - REF: ${{ github.ref }} - run: | - if [[ "$REF" == "refs/tags/v"* ]]; then - tag=$(git describe --tags $(git rev-list --tags --max-count=1)) - tag=${tag:1} - else - tag=$(git log -1 --format="%cd" --date=short | sed s/-//g) - fi - echo "IMAGE=daeuniverse/dae" >> $GITHUB_OUTPUT - echo "TAG=$tag" >> $GITHUB_OUTPUT - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build production image - uses: docker/build-push-action@v4 - with: - context: . - builder: ${{ steps.buildx.outputs.name }} - file: Dockerfile - platforms: linux/arm/v6,linux/arm/v7,linux/arm64,linux/amd64,linux/386 - push: true - tags: | - ${{ steps.prep.outputs.IMAGE }}:${{ steps.prep.outputs.TAG }} - ${{ steps.prep.outputs.IMAGE }}:latest - cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..d703d41 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,63 @@ +name: Docker + +on: + push: + branches: + - main + - fix* + - feat* + paths: + - "**/*.go" + - "**/*.c" + - "**/*.h" + - "go.mod" + - "go.sum" + - ".github/workflows/*.yml" + release: + types: [ prereleased ] + +jobs: + docker: + runs-on: ubuntu-22.04 + steps: + - name: Checkout codebase + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Prepare + id: prep + env: + REF: ${{ github.ref }} + run: | + if [[ "$REF" == "refs/tags/v"* ]]; then + tag=$(git describe --tags $(git rev-list --tags --max-count=1)) + tag=${tag:1} + else + tag=$(git log -1 --format="%cd" --date=short | sed s/-//g) + fi + echo "IMAGE=daeuniverse/dae" >> $GITHUB_OUTPUT + echo "TAG=$tag" >> $GITHUB_OUTPUT + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build production image + uses: docker/build-push-action@v4 + with: + context: . + builder: ${{ steps.buildx.outputs.name }} + file: Dockerfile + platforms: linux/arm/v6,linux/arm/v7,linux/arm64,linux/amd64,linux/386 + push: true + tags: | + ${{ steps.prep.outputs.IMAGE }}:${{ steps.prep.outputs.TAG }} + ${{ steps.prep.outputs.IMAGE }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max