diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index 40988cc..b607b6a 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -1,94 +1,17 @@ name: Pull Request on: - pull_request_target: + pull_request: branches: - 'master' -env: - DOCKER_FILE_PATH: Dockerfile - CONTAINER_REGISTRY_URL: ghcr.io/stakater - CONTAINER_REGISTRY_USERNAME: stakater-user - CONTAINER_REGISTRY_PASSWORD: ${{ secrets.STAKATER_GITHUB_TOKEN }} - jobs: build: - runs-on: ubuntu-latest - if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" - - steps: - - - name: Check out code - uses: actions/checkout@v4 - with: - persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token - fetch-depth: 0 # otherwise, you will fail to push refs to dest repo - ref: ${{github.event.pull_request.head.sha}} - - - name: Generate Tag - id: generate_tag - run: | - sha=${{ github.event.pull_request.head.sha }} - tag="SNAPSHOT-PR-${{ github.event.pull_request.number }}-${sha:0:8}" - echo "##[set-output name=GIT_TAG;]$(echo ${tag})" - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Registry - uses: docker/login-action@v2 - with: - registry: ${{ env.CONTAINER_REGISTRY_URL }} - username: ${{ env.CONTAINER_REGISTRY_USERNAME }} - password: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - - - name: Generate image repository path - id: image_repository_op - run: | - echo IMAGE_REPOSITORY=$(echo ${{ env.CONTAINER_REGISTRY_URL }}/${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - file: ${{ env.DOCKER_FILE_PATH }} - pull: true - push: true - build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} - cache-to: type=inline - tags: | - ${{ env.IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }} - labels: | - org.opencontainers.image.source=${{ github.event.repository.clone_url }} - org.opencontainers.image.created=${{ steps.prep.outputs.created }} - org.opencontainers.image.revision=${{ github.sha }} - - - name: Comment on PR - uses: mshick/add-pr-comment@v2 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - with: - message: '@${{ github.actor }} Image is available for testing. `docker pull ${{ env.CONTAINER_REGISTRY_URL }}/${{ github.repository }}:${{ steps.generate_tag.outputs.GIT_TAG }}`' - allow-repeats: false - - - name: Notify Failure - if: failure() - uses: mshick/add-pr-comment@v2 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - with: - message: '@${{ github.actor }} Yikes! You better fix it before anyone else finds out! [Build](https://github.com/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}/checks) has Failed!' - allow-repeats: false - - - name: Notify Slack - uses: 8398a7/action-slack@v3 - if: always() # Pick up events even if the job fails or is canceled. - with: - status: ${{ job.status }} - fields: repo,author,action,eventName,ref,workflow - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} + uses: stakater/.github/.github/workflows/pull_request_container_build.yaml@v0.0.75 + with: + DOCKER_FILE_PATH: Dockerfile + secrets: + CONTAINER_REGISTRY_URL: ghcr.io/stakater + CONTAINER_REGISTRY_USERNAME: stakater-user + CONTAINER_REGISTRY_PASSWORD: ${{ secrets.STAKATER_GITHUB_TOKEN }} + SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index fd83905..705193d 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -5,97 +5,15 @@ on: branches: - 'master' -env: - DOCKER_FILE_PATH: Dockerfile - CONTAINER_REGISTRY_URL: ghcr.io/stakater - CONTAINER_REGISTRY_USERNAME: stakater-user - CONTAINER_REGISTRY_PASSWORD: ${{ secrets.STAKATER_GITHUB_TOKEN }} - jobs: - build: - runs-on: ubuntu-latest - if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" - - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token - fetch-depth: 0 # otherwise, you will fail to push refs to dest repo - - - name: Generate Tag - id: generate_tag - uses: anothrNick/github-tag-action@1.36.0 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - WITH_V: true - DEFAULT_BUMP: patch - DRY_RUN: true - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Registry - uses: docker/login-action@v2 - with: - registry: ${{ env.CONTAINER_REGISTRY_URL }} - username: ${{ env.CONTAINER_REGISTRY_USERNAME }} - password: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - - - name: Generate image repository path - id: image_repository_op - run: | - echo IMAGE_REPOSITORY=$(echo ${{ env.CONTAINER_REGISTRY_URL }}/${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - file: ${{ env.DOCKER_FILE_PATH }} - pull: true - push: true - build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} - cache-to: type=inline - tags: | - ${{ env.IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.new_tag }} - labels: | - org.opencontainers.image.source=${{ github.event.repository.clone_url }} - org.opencontainers.image.created=${{ steps.prep.outputs.created }} - org.opencontainers.image.revision=${{ github.sha }} - - - name: Comment on PR - uses: mshick/add-pr-comment@v2 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - with: - message: '@${{ github.actor }} Image is available for testing. `docker pull ${{ env.CONTAINER_REGISTRY_URL }}/${{ github.repository }}:${{ steps.generate_tag.outputs.new_tag }}`' - allow-repeats: false - - - name: Push Latest Tag - uses: anothrNick/github-tag-action@1.36.0 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - WITH_V: true - DEFAULT_BUMP: patch - - - name: Notify Failure - if: failure() - uses: mshick/add-pr-comment@v2 - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - with: - message: '@${{ github.actor }} Yikes! You better fix it before anyone else finds out! [Build](https://github.com/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}/checks) has Failed!' - allow-repeats: false - - - name: Notify Slack - uses: 8398a7/action-slack@v3 - if: always() # Pick up events even if the job fails or is canceled. - with: - status: ${{ job.status }} - fields: repo,author,action,eventName,ref,workflow - env: - GITHUB_TOKEN: ${{ env.CONTAINER_REGISTRY_PASSWORD }} - SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} + push: + uses: stakater/.github/.github/workflows/push_container.yaml@v0.0.75 + with: + DOCKER_FILE_PATH: Dockerfile + RELEASE_BRANCH: master + secrets: + CONTAINER_REGISTRY_URL: ghcr.io/stakater + CONTAINER_REGISTRY_USERNAME: stakater-user + CONTAINER_REGISTRY_PASSWORD: ${{ secrets.STAKATER_GITHUB_TOKEN }} + SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} + GH_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 12cd326..d4b798e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,33 +7,6 @@ on: jobs: release: - runs-on: ubuntu-latest - - steps: - - name: Check out code - uses: actions/checkout@v2 - with: - persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token - fetch-depth: 0 # otherwise, you will fail to push refs to dest repo - - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} - # body: - draft: false - prerelease: false - - - name: Notify Slack - uses: 8398a7/action-slack@v3 - if: always() # Pick up events even if the job fails or is canceled. - with: - status: ${{ job.status }} - fields: repo,author,action,eventName,ref,workflow - env: - GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} - SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} + uses: stakater/.github/.github/workflows/release_template.yaml@v0.0.75 + secrets: + SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }}