# .github/workflows/docker-mail-manager.yml name: Docker Image - Mail Manager on: push: branches: - "stable" - "unstable" - "dev" - "dockflare-mail" tags: - "v*.*.*" - "v*.*.*-*" paths: - "mail-manager/**" pull_request: branches: - "stable" - "unstable" - "dev" - "dockflare-mail" paths: - "mail-manager/**" env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true permissions: contents: read jobs: build_self_hosted: runs-on: self-hosted timeout-minutes: 3 steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub if: github.event_name == 'push' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract Docker metadata id: meta uses: docker/metadata-action@v5 with: images: alplat/dockflare-mail-manager tags: | type=semver,pattern={{version}} type=semver,pattern={{version}},suffix=-{{premajor}}-{{prerelease}} type=ref,event=branch,pattern=stable,value=latest type=ref,event=branch,pattern=stable,value=stable type=ref,event=branch,pattern=unstable,value=unstable type=ref,event=branch,pattern=dev,value=dev type=sha,format=short type=ref,event=tag type=ref,event=branch - name: Build and Push Docker Image id: build_and_push uses: docker/build-push-action@v5 with: context: ./mail-manager platforms: linux/amd64,linux/arm64 push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build_github_hosted_fallback: needs: build_self_hosted if: failure() || cancelled() runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub if: github.event_name == 'push' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract Docker metadata id: meta uses: docker/metadata-action@v5 with: images: alplat/dockflare-mail-manager tags: | type=semver,pattern={{version}} type=semver,pattern={{version}},suffix=-{{premajor}}-{{prerelease}} type=ref,event=branch,pattern=stable,value=latest type=ref,event=branch,pattern=stable,value=stable type=ref,event=branch,pattern=unstable,value=unstable type=ref,event=branch,pattern=dev,value=dev type=sha,format=short type=ref,event=tag type=ref,event=branch - name: Build and Push Docker Image id: build_and_push uses: docker/build-push-action@v5 with: context: ./mail-manager platforms: linux/amd64,linux/arm64 push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}