name: Build and Push Images to Dockerhub and GHCR on: push: branches: ["main"] release: types: ["published"] jobs: build: runs-on: ubuntu-latest strategy: matrix: service: [backend, frontend] steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v3 with: username: "${{ secrets.DH_USER }}" password: "${{ secrets.DH_PASS }}" - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: "${{ secrets.GHCR_USER }}" password: "${{ secrets.GHCR_PAT }}" - name: Docker Metadata id: meta uses: docker/metadata-action@v5 with: context: workflow images: | ericgullickson/motovaultpro-${{ matrix.service }} ghcr.io/ericgullickson/motovaultpro-${{ matrix.service }} tags: | type=raw,value=latest,enable={{is_default_branch}} type=ref,event=tag labels: | org.opencontainers.image.title=MotoVaultPro ${{ matrix.service }} org.opencontainers.image.description=MotoVaultPro ${{ matrix.service }} service - name: Build and push uses: docker/build-push-action@v5 with: context: ./${{ matrix.service }} platforms: linux/amd64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}