[skip-ci] Update artifacts #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Push | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
push-operator: | |
name: Push Operator | |
if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
persist-credentials: false | |
# Run Tests | |
# - name: Test | |
# env: | |
# SKIP_INTEGRATION_TEST: "true" | |
# run: make test | |
- name: Generate Tag | |
id: generate_tag | |
uses: anothrNick/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} | |
WITH_V: false | |
DEFAULT_BUMP: patch | |
RELEASE_BRANCHES: main | |
DRY_RUN: true | |
- name: Generate image repository path | |
run: | | |
echo IMAGE_REPOSITORY=$(echo ghcr.io/stakater/${{ github.event.repository.name }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Update Chart Version | |
env: | |
VERSION: ${{ steps.generate_tag.outputs.new_tag }} | |
run: make bump-chart | |
- name: Update Chart CRDs | |
run: make generate-crds | |
- name: Set up Helm | |
uses: azure/setup-helm@v3 | |
with: | |
version: v3.8.2 | |
- name: Login to Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io/stakater | |
username: ${{ secrets.GHCR_USERNAME }} | |
password: ${{ secrets.GHCR_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
id: build_and_push | |
with: | |
context: . | |
file: Dockerfile | |
pull: true | |
push: true | |
cache-to: type=inline | |
tags: | | |
${{ env.IMAGE_REPOSITORY }}:v${{ steps.generate_tag.outputs.new_tag }} | |
labels: | | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
# Build custom catalog for e2e tests | |
- name: Install CLI tools from OpenShift Mirror | |
uses: redhat-actions/openshift-tools-installer@v1 | |
with: | |
source: "github" | |
operator-sdk: "v1.31.0" | |
- name: Build and Push Bundle and Catalog | |
run: make bundle bundle-build bundle-push catalog-build catalog-push | |
env: | |
IMAGE_DIGEST: ${{ steps.build_and_push.outputs.digest }} | |
VERSION: ${{ steps.generate_tag.outputs.new_tag }} | |
# Publish helm chart | |
- name: Publish Helm chart | |
run: | | |
helm dependency build ./charts/grafana-oncall | |
helm package ./charts/grafana-oncall --destination ./packaged-chart | |
helm push ./packaged-chart/*.tgz oci://ghcr.io/stakater/charts | |
rm -rf ./packaged-chart | |
# Commit back changes | |
- name: Commit files | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "stakater-github-root" | |
git status | |
git add . | |
git reset bundle/ | |
git commit -m "[skip-ci] Update artifacts" -a | |
- name: Push changes | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.STAKATER_GITHUB_TOKEN }} | |
branch: main | |
- name: Push Latest Tag | |
uses: anothrNick/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} | |
DEFAULT_BUMP: patch | |
RELEASE_BRANCHES: main | |
WITH_V: true | |
outputs: | |
image_repository: ${{ env.IMAGE_REPOSITORY }} | |
version: ${{ steps.generate_tag.outputs.new_tag }} | |
notify-success: | |
name: Notify Success | |
runs-on: ubuntu-latest | |
if: always() && (needs.push-operator.result == 'success') | |
needs: | |
- push-operator | |
steps: | |
- name: Comment on PR | |
uses: mshick/add-pr-comment@v2 | |
if: always() | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
message-success: "@${{ github.actor }} Image is available for testing. `docker pull ${{ needs.push-operator.outputs.image_repository }}:v${{ needs.push-operator.outputs.version }}`" | |
message-failure: '@${{ 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: true | |
- name: Notify Slack | |
uses: 8398a7/action-slack@v3 | |
if: always() | |
with: | |
status: success | |
fields: repo,author,action,eventName,ref,workflow | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} | |
notify-failure: | |
name: Notify Failure | |
runs-on: ubuntu-latest | |
if: always() && (needs.push-operator.result != 'success') | |
needs: | |
- push-operator | |
steps: | |
- name: Comment on PR | |
uses: mshick/add-pr-comment@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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: true | |
- name: Notify Slack | |
uses: 8398a7/action-slack@v3 | |
if: always() && (needs.push-operator.result != 'success') || (needs.operator-e2e-test.result != 'success') | |
with: | |
status: failure | |
fields: repo,author,action,eventName,ref,workflow | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} |