name: Docker Nightly Release on: push: branches: [ nightly ] jobs: verify-changes: runs-on: ubuntu-latest outputs: build: ${{ steps.list-changes.outputs.build }} steps: - name: Check Out Repo uses: actions/checkout@v4 with: fetch-depth: 0 ref: nightly - name: Get changes id: get-changes run: echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT - name: List changed files id: list-changes run: | for file in ${{ steps.get-changes.outputs.files }}; do if [[ $file =~ ^(defaults|fonts|modules|kometa.py|requirements.txt|.dockerignore|Dockerfile).*$ ]] ; then echo "$file will trigger docker build" echo "build=true" >> $GITHUB_OUTPUT else echo "$file will not trigger docker build" fi done docker-build: runs-on: ubuntu-latest needs: [ verify-changes ] if: needs.verify-changes.outputs.build == 'true' steps: - name: Check Out Repo uses: actions/checkout@v4 with: ref: nightly - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@master with: platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Build and Push id: docker_build uses: docker/build-push-action@v5 with: context: ./ file: ./Dockerfile build-args: | "BRANCH_NAME=nightly" platforms: linux/amd64,linux/arm64 push: true tags: kometateam/kometa:nightly cache-from: type=gha cache-to: type=gha,mode=max - name: Discord Success Notification uses: Kometa-Team/discord-notifications@master if: success() with: webhook_id_token: ${{ secrets.BUILD_WEBHOOK }} title: "${{ vars.REPO_NAME }} nightly: ${{ vars.TEXT_SUCCESS }}" url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }} color: ${{ vars.COLOR_SUCCESS }} username: ${{ vars.BOT_NAME }} avatar_url: ${{ vars.BOT_IMAGE }} author: ${{ vars.DOCKER_NAME }} author_icon_url: ${{ vars.DOCKER_IMAGE }} - name: Discord Failure Notification uses: Kometa-Team/discord-notifications@master if: failure() with: webhook_id_token: ${{ secrets.BUILD_WEBHOOK }} message: ${{ vars.BUILD_FAILURE_ROLE }} title: "${{ vars.REPO_NAME }} nightly: ${{ vars.TEXT_FAILURE }}" url: https://github.com/Kometa-Team/${{ vars.REPO_NAME }}/actions/runs/${{ github.run_id }} color: ${{ vars.COLOR_FAILURE }} username: ${{ vars.BOT_NAME }} avatar_url: ${{ vars.BOT_IMAGE }} author: ${{ vars.DOCKER_NAME }} author_icon_url: ${{ vars.DOCKER_IMAGE }} commit-notification: runs-on: ubuntu-latest needs: [ docker-build, verify-changes ] if: ${{ success() && needs.verify-changes.outputs.build == 'true' }} steps: - name: Send Discord Commit Notification uses: Kometa-Team/discord-notifications@master with: webhook_id_token: ${{ secrets.NIGHTLY_WEBHOOK }} title: ${{ vars.TEXT_COMMITS }} message: "<@&967002147520675840> - An update to Kometa has now been published and is available to users of the **nightly** branch." commits: "true" color: ${{ vars.COLOR_SUCCESS }} username: ${{ vars.BOT_NAME }} avatar_url: ${{ vars.BOT_IMAGE }} author: ${{ vars.REPO_NAME }} Nightly Release author_icon_url: ${{ vars.RELEASE_IMAGE }}