name: Validate Pull Request on: pull_request jobs: validate-pull: runs-on: ubuntu-latest steps: - name: Display Refs run: | echo "Base Repo: ${{ github.event.pull_request.base.repo.full_name }}" echo "Base Ref: ${{ github.base_ref }}" echo "Head Repo: ${{ github.event.pull_request.head.repo.full_name }}" echo "Head Ref: ${{ github.head_ref }}" - name: Check Base Branch if: github.base_ref == 'master' || github.base_ref == 'develop' run: | echo "ERROR: Pull Requests cannot be submitted to master or develop. Please submit the Pull Request to the nightly branch" exit 1 - name: Checkout Repo uses: actions/checkout@v4 - name: Run Spellcheck uses: rojopolis/spellcheck-github-actions@0.36.0 docker-build: runs-on: ubuntu-latest needs: [ validate-pull ] if: github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && github.base_ref == 'nightly' && startswith(github.head_ref, 'docker-') steps: - name: Create Tag id: create-tag run: | var="${{ github.head_ref }}" echo "docker-tag=${var:7}" >> $GITHUB_OUTPUT - name: Check Out Repo uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} - 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=${{ steps.create-tag.outputs.docker-tag }}" platforms: linux/amd64,linux/arm64 push: true tags: kometateam/kometa:${{ steps.create-tag.outputs.docker-tag }} 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 }} ${{ steps.create-tag.outputs.docker-tag }}: ${{ 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 }} ${{ steps.create-tag.outputs.docker-tag }}: ${{ 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 }}