name: Build and Publish Docker Image on: push: branches: [main] workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 # The Dockerfile has two runnable stages and no sensible default: an # untargeted build produces the last one (frontend) on its own, which # then has nothing to proxy /api to. Both get published separately. - name: Build Docker Images run: | docker build --target backend \ -t git.alexav.gg/${{ gitea.repository }}:backend-latest \ -t git.alexav.gg/${{ gitea.repository }}:backend-${{ gitea.sha }} . docker build --target frontend \ -t git.alexav.gg/${{ gitea.repository }}:frontend-latest \ -t git.alexav.gg/${{ gitea.repository }}:frontend-${{ gitea.sha }} . - name: Login to Gitea Registry run: | echo "${{ secrets.RUNNER_TOKEN }}" | docker login git.alexav.gg -u ${{ gitea.actor }} --password-stdin - name: Push Docker Images run: | docker push git.alexav.gg/${{ gitea.repository }}:backend-latest docker push git.alexav.gg/${{ gitea.repository }}:backend-${{ gitea.sha }} docker push git.alexav.gg/${{ gitea.repository }}:frontend-latest docker push git.alexav.gg/${{ gitea.repository }}:frontend-${{ gitea.sha }} deploy: steps: - name: Deploy uses: alex/blog/.github/workflows/deploy.yml