Merge pull request #114 from aykhans/core/refactor #16
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: publish-docker-image | |
| on: | |
| push: | |
| tags: | |
| # Match stable and pre versions, such as 'v1.0.0', 'v0.23.0-a', 'v0.23.0-a.2', 'v0.23.0-b', 'v0.23.0-b.3' | |
| - "v*.*.*" | |
| - "v*.*.*-a" | |
| - "v*.*.*-a.*" | |
| - "v*.*.*-b" | |
| - "v*.*.*-b.*" | |
| jobs: | |
| build-and-push-stable-image: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Extract build args | |
| # Extract version number and check if it's an pre version | |
| run: | | |
| if [[ "${GITHUB_REF_NAME}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "PRE_RELEASE=false" >> $GITHUB_ENV | |
| else | |
| echo "PRE_RELEASE=true" >> $GITHUB_ENV | |
| fi | |
| echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: aykhans | |
| password: ${{ secrets.DOCKER_TOKEN }} | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| with: | |
| install: true | |
| version: v0.9.1 | |
| # Metadata for stable versions | |
| - name: Docker meta for stable | |
| id: meta-stable | |
| if: env.PRE_RELEASE == 'false' | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| aykhans/dodo | |
| tags: | | |
| type=semver,pattern={{version}},value=${{ env.VERSION }} | |
| type=raw,value=stable | |
| flavor: | | |
| latest=true | |
| labels: | | |
| org.opencontainers.image.version=${{ env.VERSION }} | |
| # Metadata for pre versions | |
| - name: Docker meta for pre | |
| id: meta-pre | |
| if: env.PRE_RELEASE == 'true' | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| aykhans/dodo | |
| tags: | | |
| type=raw,value=${{ env.VERSION }} | |
| labels: | | |
| org.opencontainers.image.version=${{ env.VERSION }} | |
| - name: Build and Push | |
| id: docker_build | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: ./ | |
| file: ./Dockerfile | |
| platforms: linux/amd64,linux/arm64 | |
| push: true | |
| tags: ${{ steps.meta-stable.outputs.tags || steps.meta-pre.outputs.tags }} | |
| labels: ${{ steps.meta-stable.outputs.labels || steps.meta-pre.outputs.labels }} |