danielchat/docker
0
1name: Push Docker Image2 3on:4 workflow_dispatch:5 6 release:7 types: [ published ]8 9permissions:10 packages: write11 contents: read12 13env:14 IMAGE_NAME: pandora15 PLATFORMS: linux/amd64,linux/arm6416 17jobs:18 get-tags:19 runs-on: ubuntu-latest20 outputs:21 image_version: ${{ steps.get_image_version.outputs.image_version }}22 steps:23 - uses: actions/checkout@v324 25 - name: Get Image Version26 id: get_image_version27 run: |28 # Strip git ref prefix from version29 IMAGE_VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')30 31 # Strip "v" prefix from tag name32 [[ "${{ github.ref }}" == "refs/tags/"* ]] && IMAGE_VERSION=$(echo $IMAGE_VERSION | sed -e 's/^v//')33 34 echo VERSION=$IMAGE_VERSION35 echo "image_version=${IMAGE_VERSION}" >> $GITHUB_OUTPUT36 37 push-ghcr:38 needs: get-tags39 runs-on: ubuntu-latest40 env:41 REGISTRY: ghcr.io42 43 steps:44 - uses: actions/checkout@v345 46 - name: Docker Setup QEMU47 uses: docker/setup-qemu-action@v248 49 - name: Set up Docker BuildX50 uses: docker/setup-buildx-action@v251 52 - name: Docker Login53 uses: docker/login-action@v254 with:55 registry: ${{ env.REGISTRY }}56 username: ${{ github.repository_owner }}57 password: ${{ secrets.GITHUB_TOKEN }}58 59 - name: Build and Push60 uses: docker/build-push-action@v461 with:62 push: true63 platforms: ${{ env.PLATFORMS }}64 tags: |65 ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:${{ needs.get-tags.outputs.image_version }}66 ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest67 68 push-docker-hub:69 needs: get-tags70 runs-on: ubuntu-latest71 72 steps:73 - uses: actions/checkout@v374 75 - name: Docker Setup QEMU76 uses: docker/setup-qemu-action@v277 78 - name: Set up Docker BuildX79 uses: docker/setup-buildx-action@v280 81 - name: Docker Login82 uses: docker/login-action@v283 with:84 username: ${{ secrets.DOCKERHUB_USERNAME }}85 password: ${{ secrets.DOCKERHUB_TOKEN }}86 87 - name: Build and Push88 uses: docker/build-push-action@v489 with:90 push: true91 platforms: ${{ env.PLATFORMS }}92 tags: |93 ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ needs.get-tags.outputs.image_version }}94 ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest95 