From b2a0c3885cc4e97b72dfdecba6f9494c040e1917 Mon Sep 17 00:00:00 2001 From: Shizun Ge Date: Sun, 2 Jul 2023 15:57:21 -0700 Subject: [PATCH] [workflow] use docker metadata action. move docker hub description to a separated flow. --- .github/workflows/docker-hub-description.yml | 22 +++++++++++ .github/workflows/on-push-main.yml | 33 +++++++--------- .github/workflows/on-release.yml | 41 +++++++------------- 3 files changed, 51 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/docker-hub-description.yml diff --git a/.github/workflows/docker-hub-description.yml b/.github/workflows/docker-hub-description.yml new file mode 100644 index 0000000..2639d34 --- /dev/null +++ b/.github/workflows/docker-hub-description.yml @@ -0,0 +1,22 @@ +name: Update Docker Hub description + +on: + release: + types: + - created + workflow_dispatch: + +jobs: + publish: + name: Update Docker Hub description + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v3 + - name: Update Docker Hub description + uses: peter-evans/dockerhub-description@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + repository: ${{ github.repository }} + short-description: ${{ github.event.repository.description }} \ No newline at end of file diff --git a/.github/workflows/on-push-main.yml b/.github/workflows/on-push-main.yml index bbd970a..a166c2b 100644 --- a/.github/workflows/on-push-main.yml +++ b/.github/workflows/on-push-main.yml @@ -15,43 +15,40 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 - - - name: Extract tag string - id: git - shell: bash - run: | - RELEASE_VERSION="dev-$(date +%s)" - echo "image_tag=${RELEASE_VERSION}" >> ${GITHUB_OUTPUT} - - name: Set up QEMU uses: docker/setup-qemu-action@v2 - - - name: Install buildx + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.7.0 - - name: Login to docker hub uses: docker/login-action@v2.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Login to GitHub Container Registry uses: docker/login-action@v2.2.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ github.token }} - + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + tags: | + type=raw,value=dev-{{date 'X'}} + type=raw,value=development + type=ref,event=branch + type=edge,branch=main - name: Build and push ${{ github.repository }}:${{ steps.git.outputs.image_tag }} uses: docker/build-push-action@v4.1.1 with: platforms: ${{ env.PLATFORMS }} push: true - tags: | - ${{ github.repository }}:${{ steps.git.outputs.image_tag }} - ${{ github.repository }}:development - ghcr.io/${{ github.repository }}:${{ steps.git.outputs.image_tag }} - ghcr.io/${{ github.repository }}:development + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} clean-ghcr: name: Delete old dev container images diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index 7ac1e27..92a24dd 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -14,48 +14,35 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 - - - name: Extract tag string - id: git - shell: bash - run: | - RELEASE_VERSION=${GITHUB_REF#refs/*/} - echo "image_tag=${RELEASE_VERSION}" >> ${GITHUB_OUTPUT} - - name: Set up QEMU uses: docker/setup-qemu-action@v2 - - - name: Install buildx + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.7.0 - - name: Login to docker hub uses: docker/login-action@v2.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Login to GitHub Container Registry uses: docker/login-action@v2.2.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ github.token }} - - - name: Build and push ${{ github.repository }}:${{ steps.git.outputs.image_tag }} + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + tags: | + type=ref,event=branch + type=ref,event=tag + - name: Build and push uses: docker/build-push-action@v4.1.1 with: platforms: ${{ env.PLATFORMS }} push: true - tags: | - ${{ github.repository }}:${{ steps.git.outputs.image_tag }} - ${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ steps.git.outputs.image_tag }} - ghcr.io/${{ github.repository }}:latest - - - name: Update dockerhub description - uses: peter-evans/dockerhub-description@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - repository: ${{ github.repository }} - short-description: ${{ github.event.repository.description }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}