name: Build and push images on: push: branches: [main] workflow_dispatch: # allow manual trigger from Gitea UI env: REGISTRY: ${{ vars.GITEA_URL }} # e.g. gitea.yourdomain.com — set in repo Settings → Variables OWNER: ${{ gitea.repository_owner }} jobs: build-backend: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.PACKAGE_TOKEN }} - name: Build and push backend uses: docker/build-push-action@v5 with: context: ./backend file: ./backend/Dockerfile push: true tags: | ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-backend:latest ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-backend:${{ gitea.sha }} build-worker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.PACKAGE_TOKEN }} - name: Build and push worker uses: docker/build-push-action@v5 with: context: ./backend file: ./backend/Dockerfile.worker push: true tags: | ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-worker:latest ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-worker:${{ gitea.sha }} build-frontend: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.PACKAGE_TOKEN }} - name: Build and push frontend uses: docker/build-push-action@v5 with: context: ./frontend file: ./frontend/Dockerfile push: true tags: | ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-frontend:latest ${{ env.REGISTRY }}/${{ env.OWNER }}/milevault-frontend:${{ gitea.sha }} build-args: | VITE_API_URL=/api VITE_MAPBOX_TOKEN=