name: Release on: push: tags: - 'v*.*.*' env: REGISTRY: ${{ gitea.server_url }} IMAGE_PREFIX: ${{ gitea.repository_owner }}/fictionarchive jobs: build-and-push: runs-on: ubuntu-latest strategy: matrix: service: - name: api dockerfile: FictionArchive.API/Dockerfile - name: novel-service dockerfile: FictionArchive.Service.NovelService/Dockerfile - name: user-service dockerfile: FictionArchive.Service.UserService/Dockerfile - name: translation-service dockerfile: FictionArchive.Service.TranslationService/Dockerfile - name: file-service dockerfile: FictionArchive.Service.FileService/Dockerfile - name: scheduler-service dockerfile: FictionArchive.Service.SchedulerService/Dockerfile - name: authentication-service dockerfile: FictionArchive.Service.AuthenticationService/Dockerfile steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Extract version from tag id: version run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT - name: Log in to Gitea Container Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: . file: ${{ matrix.service.dockerfile }} push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-${{ matrix.service.name }}:${{ steps.version.outputs.VERSION }} ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-${{ matrix.service.name }}:latest cache-from: type=gha cache-to: type=gha,mode=max build-frontend: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Extract version from tag id: version run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT - name: Log in to Gitea Container Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Build and push frontend Docker image uses: docker/build-push-action@v6 with: context: ./fictionarchive-web file: fictionarchive-web/Dockerfile push: true build-args: | VITE_GRAPHQL_URI=${{ vars.VITE_GRAPHQL_URI }} VITE_OIDC_AUTHORITY=${{ vars.VITE_OIDC_AUTHORITY }} VITE_OIDC_CLIENT_ID=${{ vars.VITE_OIDC_CLIENT_ID }} VITE_OIDC_REDIRECT_URI=${{ vars.VITE_OIDC_REDIRECT_URI }} VITE_OIDC_POST_LOGOUT_REDIRECT_URI=${{ vars.VITE_OIDC_POST_LOGOUT_REDIRECT_URI }} tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-frontend:${{ steps.version.outputs.VERSION }} ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-frontend:latest cache-from: type=gha cache-to: type=gha,mode=max