name: Docker Build Production on: release: types: [published] jobs: backend-tests: name: "Backend Server Tests" uses: ./.github/workflows/test-backend.yml frontend-tests: name: "Frontend Tests" uses: ./.github/workflows/test-frontend.yml build-package: name: Build Package uses: ./.github/workflows/build-package.yml with: tag: ${{ github.event.release.tag_name }} publish: permissions: contents: read packages: write # The id-token write permission is needed to connect to Depot.dev # as part of the partial-builder.yml action. It needs to be declared # in the parent action, as noted here: # https://github.com/orgs/community/discussions/76409#discussioncomment-8131390 id-token: write name: Build Tagged Release uses: ./.github/workflows/publish.yml needs: - backend-tests - frontend-tests - build-package with: tag: ${{ github.event.release.tag_name }} tags: | hkotel/mealie:latest ghcr.io/${{ github.repository }}:latest secrets: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} notify-discord: name: Notify Discord needs: - publish runs-on: ubuntu-latest steps: - name: Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }} uses: Ilshidur/action-discord@0.3.2 with: args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}" update-image-tags: name: Update image tag in sample docker-compose files needs: - publish runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout 🛎 uses: actions/checkout@v4 - name: Extract Version From Tag Name run: echo "VERSION_NUM=$(echo ${{ github.event.release.tag_name }} | sed 's/^v//')" >> $GITHUB_ENV - name: Modify version strings run: | sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/installation-checklist.md sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/sqlite.md sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/postgres.md sed -i 's/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' pyproject.toml sed -i 's/^\s*"version": "[^"]*"/"version": "${{ env.VERSION_NUM }}"/' frontend/package.json - name: Create Pull Request uses: peter-evans/create-pull-request@v6 # This doesn't currently work for us because it creates the PR but the workflows don't run. # TODO: Provide a personal access token as a parameter here, that solves that problem. # https://github.com/peter-evans/create-pull-request with: commit-message: "Update image tag, for release ${{ github.event.release.tag_name }}" branch: "docs/newrelease-update-version-${{ github.event.release.tag_name }}" labels: | documentation delete-branch: true base: mealie-next title: "docs(auto): Update image tag, for release ${{ github.event.release.tag_name }}" body: "Auto-generated by `.github/workflows/release.yml`, on publish of release ${{ github.event.release.tag_name }}"