operator [N] [CI] cte-k8s-operator (1.3.2) #3336
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: Operator release | |
on: | |
push: | |
branches: | |
- master | |
- main | |
workflow_dispatch: | |
inputs: | |
release: | |
description: 'Force to run release' | |
required: true | |
default: '0' | |
delete: | |
description: 'Remove operator virtually from git (cockroachdb or cockroachdb/5.0.4) for debuging only' | |
required: false | |
default: '' | |
env: | |
OPP_DEBUG: 1 | |
OPP_CONTAINER_OPT: "-t" | |
OPP_SCRIPT_URL: "https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp.sh" | |
OPP_SCRIPT_ENV_URL: "https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp-env.sh" | |
OPP_SCRIPT_ISS_URL: "https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp-iss.sh" | |
OPP_SCRIPT_CLEANUP_URL: "https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp-disk-cleanup-on-startup.sh" | |
OPP_SCRIPT_TRIGGER_OHIO_URL: "https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp-trigger-operatorhubio-ci.sh" | |
OPP_IMAGE: "quay.io/operator_testing/operator-test-playbooks:latest" | |
OPP_ANSIBLE_PULL_REPO: "https://github.com/redhat-openshift-ecosystem/operator-test-playbooks" | |
OPP_ANSIBLE_PULL_BRANCH: "upstream-community" | |
OPP_PROD: 1 | |
OPP_MIRROR_LATEST_TAG: "" | |
OPP_PRODUCTION_TYPE: "k8s" | |
OPP_RELEASE_BUNDLE_REGISTRY: "quay.io" | |
OPP_RELEASE_BUNDLE_ORGANIZATION: "operatorhubio" | |
OPP_RELEASE_INDEX_REGISTRY: "quay.io" | |
OPP_RELEASE_INDEX_ORGANIZATION: "operatorhubio" | |
OPP_RELEASE_INDEX_NAME: "catalog_tmp" | |
OPP_MIRROR_INDEX_REGISTRY: "quay.io" | |
OPP_MIRROR_INDEX_ORGANIZATION: "operatorhubio" | |
OPP_MIRROR_INDEX_NAME: "catalog" | |
OPP_MIRROR_INDEX_ENABLED: "1" | |
OPP_MIRROR_INDEX_MULTIARCH_BASE: "quay.io/operator-framework/opm" | |
OPP_MULTIARCH_SUPPORTED_VERSIONS: "latest" | |
OPP_MIRROR_INDEX_MULTIARCH_POSTFIX: "s" | |
IIB_INPUT_REGISTRY_USER: "framework_automation" | |
OPP_REGISTRY_MIRROR_USER: "framework_automation" | |
OPP_THIS_REPO_BASE: "https://github.com" | |
OPP_THIS_REPO: "k8s-operatorhub/community-operators" | |
OPP_THIS_BRANCH: "main" | |
INDEX_PATH_TO_SIGN: "not-defined" | |
SIGNATURE_ENDPOINT: "https://not-defined" | |
OPP_REVIEWERS_ENABLED: 0 | |
OPP_ALLOW_FORCE_RELEASE: ${{ github.event.inputs.release }} | |
OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH: "${{ github.event.inputs.delete }}" | |
REGISTRY_RELEASE_API_TOKEN: ${{ secrets.REGISTRY_RELEASE_API_TOKEN }} | |
REGISTRY_MIRROR_PW: ${{ secrets.REGISTRY_MIRROR_PW }} | |
GODEBUG: x509ignoreCN=0 | |
CI_OHIO_TRIGGER_TOKEN: ${{ secrets.CI_OHIO_TRIGGER_TOKEN }} | |
OHIO_REGISTRY_TOKEN: ${{ secrets.OHIO_REGISTRY_TOKEN }} | |
QUAY_APPREG_TOKEN: ${{ secrets.QUAY_APPREG_TOKEN }} | |
QUAY_COURIER_TOKEN: ${{ secrets.QUAY_COURIER_TOKEN }} | |
REPO_GHA_PAT: ${{ secrets.REPO_GHA_PAT }} | |
IIB_INPUT_REGISTRY_TOKEN: ${{ secrets.IIB_INPUT_REGISTRY_TOKEN }} | |
jobs: | |
pr-check: | |
name: "PR-traffic-light" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- id: files | |
uses: masesgroup/retrieve-changed-files@v2 | |
continue-on-error: true | |
- id: prinfo | |
uses: actions-ecosystem/action-get-merged-pull-request@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: python -m pip install --upgrade pip yq | |
- name: Operator traffic light | |
id: op-traffic-light | |
env: | |
OPP_ADDED_MODIFIED_FILES: "${{ steps.files.outputs.added_modified }}" | |
OPP_MODIFIED_FILES: "${{ steps.files.outputs.modified }}" | |
OPP_RENAMED_FILES: "${{ steps.files.outputs.renamed }}" | |
OPP_REMOVED_FILES: "${{ steps.files.outputs.removed }}" | |
OPP_LABELS: "${{ steps.prinfo.outputs.labels }}" | |
run: | | |
if [ -z "${{ github.event.inputs.list_of_operators }}" ] | |
then | |
echo "Found an empty input - list_of_operators [OK]" | |
else | |
OPP_MODIFIED_FILES="" | |
for operator_to_loop in ${{ github.event.inputs.list_of_operators }}; do | |
echo "Processing $operator_to_loop" | |
if [ -z "$OPP_MODIFIED_FILES" ] | |
then | |
echo "...inicializing OPP_MODIFIED_FILES" | |
OPP_MODIFIED_FILES="$(find operators/$operator_to_loop/ -type f -name "*.clusterserviceversion.yaml" | tail -n 1)" | |
else | |
echo "...extending OPP_MODIFIED_FILES" | |
OPP_MODIFIED_FILES="$OPP_MODIFIED_FILES $(find operators/$operator_to_loop/ -type f -name "*.clusterserviceversion.yaml" | tail -n 1)" | |
fi | |
done | |
fi | |
echo "OPP_MODIFIED_FILES=$OPP_MODIFIED_FILES" | |
echo "PR : ${{ steps.prinfo.outputs.number }}" | |
echo "labels : ${{ steps.prinfo.outputs.labels }}" | |
echo "OPP_LABELS=$OPP_LABELS" | |
echo "Using script '$OPP_SCRIPT_ENV_URL' ..." | |
bash <(curl -sL $OPP_SCRIPT_ENV_URL) | |
- name: Block until there is no running workflow | |
if: steps.op-traffic-light.outputs.opp_release_ready == '1' | |
uses: softprops/turnstyle@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
opp_labels: "${{ steps.prinfo.outputs.labels }}" | |
opp_test_ready: "${{ steps.op-traffic-light.outputs.opp_test_ready }}" | |
opp_release_ready: "${{ steps.op-traffic-light.outputs.opp_release_ready }}" | |
opp_stream: "${{ steps.op-traffic-light.outputs.opp_stream }}" | |
opp_name: "${{ steps.op-traffic-light.outputs.opp_name }}" | |
opp_version: "${{ steps.op-traffic-light.outputs.opp_version }}" | |
opp_ci_yaml_only: "${{ steps.op-traffic-light.outputs.opp_ci_yaml_only }}" | |
opp_ver_overwrite: "${{ steps.op-traffic-light.outputs.opp_ver_overwrite }}" | |
opp_op_delete: "${{ steps.op-traffic-light.outputs.opp_op_delete }}" | |
opp_recreate: "${{ steps.op-traffic-light.outputs.opp_recreate }}" | |
opp_is_new_operatror: "${{ steps.op-traffic-light.outputs.opp_is_new_operatror }}" | |
opp_release_delete_appreg: "${{ steps.op-traffic-light.outputs.opp_release_delete_appreg }}" | |
opp_pr_title: "${{ steps.op-traffic-light.outputs.opp_pr_title }}" | |
opp_auto_packagemanifest_cluster_version_label: "${{ steps.op-traffic-light.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
remove-k8s: | |
name: "Remove / k8s" | |
needs: pr-check | |
if: needs.pr-check.outputs.opp_release_ready == '1' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
index-tag: ['latest'] | |
fail-fast: false | |
steps: | |
- name: Remove operator from index | |
if: needs.pr-check.outputs.opp_op_delete == '1' && needs.pr-check.outputs.opp_name != '' | |
env: | |
OPP_LABELS: "${{ needs.pr-check.outputs.opp_labels }}" | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL: "${{ needs.pr-check.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
OPERATOR_INDEX_TAG: ${{ matrix.index-tag }} | |
run: | | |
echo "OPP_LABELS=$OPP_LABELS" | |
echo "op_delete_${OPERATOR_INDEX_TAG} operators/${{ needs.pr-check.outputs.opp_name }}/dummy $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_URL) op_delete_${OPERATOR_INDEX_TAG} operators/${{ needs.pr-check.outputs.opp_name }}/dummy $OPP_THIS_REPO $OPP_THIS_BRANCH | |
- name: Operator release (operator version overwrite) | |
if: needs.pr-check.outputs.opp_ci_yaml_only == '0' && needs.pr-check.outputs.opp_ver_overwrite == '1' && needs.pr-check.outputs.opp_name != '' && needs.pr-check.outputs.opp_version != '' | |
env: | |
OPP_LABELS: "${{ needs.pr-check.outputs.opp_labels }}" | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL: "${{ needs.pr-check.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
OPP_IIB_INSTALL: 0 | |
OPERATOR_INDEX_TAG: ${{ matrix.index-tag }} | |
run: | | |
echo "OPP_LABELS=$OPP_LABELS" | |
FAKE_RC=false | |
FAKE_TYPE=$(echo $OPERATOR_INDEX_TAG | cut -d '-' -f 2) | |
[[ $FAKE_TYPE == *rc* ]] && FAKE_RC=true || true | |
[[ $FAKE_TYPE == *maintenance* ]] && exit 0 || true | |
echo "op_delete_${OPERATOR_INDEX_TAG} operators/${{ needs.pr-check.outputs.opp_name }}/${{ needs.pr-check.outputs.opp_version }} $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_URL) op_delete_${OPERATOR_INDEX_TAG} operators/${{ needs.pr-check.outputs.opp_name }}/${{ needs.pr-check.outputs.opp_version }} $OPP_THIS_REPO $OPP_THIS_BRANCH || $FAKE_RC | |
operators-k8s: | |
name: "Index check / k8s" | |
needs: [pr-check, remove-k8s ] | |
if: needs.pr-check.outputs.opp_release_ready == '1' && (needs.pr-check.outputs.opp_op_delete == '0' || needs.pr-check.outputs.opp_is_new_operatror == '1' || needs.pr-check.outputs.opp_recreate == '1' ) | |
runs-on: ubuntu-latest | |
steps: | |
- name: List of missing operators | |
id: operators | |
env: | |
OPP_LABELS: "${{ needs.pr-check.outputs.opp_labels }}" | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL: "${{ needs.pr-check.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
OPP_IIB_INSTALL: 0 | |
IIB_INPUT_REGISTRY_TOKEN: ${{ secrets.IIB_INPUT_REGISTRY_TOKEN }} | |
OPERATOR_INDEX_TAG: "orange_latest" | |
OPP_INDEX_CHECK_ONLY: 1 | |
run: | | |
echo "OPP_LABELS=$OPP_LABELS" | |
echo "'$OPERATOR_INDEX_TAG' operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_URL) "$OPERATOR_INDEX_TAG" operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH | |
- name: Index check | |
run: | | |
echo "Operators : ${{ steps.operators.outputs.opp_uncomplete_operators }}" | |
echo "Operators (latest) : ${{ steps.operators.outputs.opp_uncomplete_operators_latest }}" | |
- name: Operator info | |
id: op-info | |
env: | |
OPP_FORCE_OPERATORS: ${{ steps.operators.outputs.opp_uncomplete_operators }} | |
OPP_OP_INFO_PARALLEL: 1 | |
OPP_OP_INFO_PARALLEL_BATCH: 20 | |
OPP_AUTO_LABEL: 1 | |
ANSIBLE_FORCE_COLOR: 1 | |
ANSIBLE_DISPLAY_SKIPPED_HOSTS: 0 | |
ANSIBLE_STDOUT_CALLBACK: "yaml" | |
run: | | |
OPP_FORCE_OPERATORS=${OPP_FORCE_OPERATORS// /,} | |
echo $OPP_FORCE_OPERATORS | |
[ "$OPP_AUTO_LABEL" = '1' ] && ANSIBLE_ARGS="-e automatic_cluster_version_label=true" || ANSIBLE_ARGS="-e automatic_cluster_version_label=false" | |
[ "$OPP_OP_INFO_PARALLEL" = '1' ] && ANSIBLE_ARGS="$ANSIBLE_ARGS -e op_info_parallel=true -e op_info_parallel_batch=$OPP_OP_INFO_PARALLEL_BATCH" || ANSIBLE_ARGS="$ANSIBLE_ARGS -e op_info_parallel=false" | |
echo $ANSIBLE_ARGS | |
git clone $OPP_ANSIBLE_PULL_REPO -b $OPP_ANSIBLE_PULL_BRANCH operator-test-playbooks | |
cd operator-test-playbooks | |
ansible-playbook -i localhost, -e ansible_connection=local -e run_upstream=true -e run_prepare_catalog_repo_upstream=true -e catalog_repo=$OPP_THIS_REPO_BASE/$OPP_THIS_REPO -e catalog_repo_branch=$OPP_THIS_BRANCH upstream/local.yml --tags reset_tools,operator_info -e operator_base_dir=/tmp/community-operators-for-catalog/operators -e operators=$OPP_FORCE_OPERATORS -e cluster_type=$OPP_PRODUCTION_TYPE -e strict_cluster_version_labels=true -e production_registry_namespace=$OPP_RELEASE_BUNDLE_REGISTRY/$OPP_RELEASE_BUNDLE_ORGANIZATION $ANSIBLE_ARGS | |
- name: Upload operator_info | |
uses: actions/upload-artifact@v2 | |
with: | |
name: operator_info | |
path: "/tmp/operator-test/op_info.yaml" | |
- name: Upload converted operators | |
uses: actions/upload-artifact@v2 | |
with: | |
name: operators_converted | |
path: "/tmp/operator-test/operators" | |
- shell: bash | |
run: | | |
[ -f /tmp/operator-test/op_info.yaml ] && cat /tmp/operator-test/op_info.yaml || echo "opp_uncomplete_operators=" >> $GITHUB_OUTPUT | |
outputs: | |
opp_uncomplete_operators: "${{ steps.operators.outputs.opp_uncomplete_operators }}" | |
opp_uncomplete_operators_latest: "${{ steps.operators.outputs.opp_uncomplete_operators_latest }}" | |
bundles-k8s: | |
name: "Bundles / k8s" | |
needs: [ pr-check, remove-k8s, operators-k8s ] | |
if: needs.pr-check.outputs.opp_release_ready == '1' && needs.operators-k8s.outputs.opp_uncomplete_operators != '' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download operator_info | |
uses: actions/download-artifact@v2 | |
with: | |
name: operator_info | |
path: /tmp/operator-test/ | |
- name: Download converted operators | |
uses: actions/download-artifact@v2 | |
with: | |
name: operators_converted | |
path: /tmp/operator-test/operators | |
- name: Build bundles | |
env: | |
OPP_LABELS: "${{ needs.pr-check.outputs.opp_labels }}" | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL: "${{ needs.pr-check.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
OPP_IIB_INSTALL: 0 | |
OPERATOR_INDEX_TAG: latest | |
OPP_SKIP_INDEX: 1 | |
OPP_SKIP_BUNDLES: 0 | |
OPP_FORCE_OPERATORS: "${{ needs.operators-k8s.outputs.opp_uncomplete_operators }}" | |
run: | | |
echo "OPP_LABELS=$OPP_LABELS" | |
echo "OPP_FORCE_OPERATORS=$OPP_FORCE_OPERATORS" | |
FAKE_RC=false | |
FAKE_TYPE=$(echo $OPERATOR_INDEX_TAG | cut -d '-' -f 2) | |
[[ $FAKE_TYPE == *rc* ]] && FAKE_RC=true || true | |
[[ $FAKE_TYPE == *maintenance* ]] && exit 0 || true | |
echo "orange_${OPERATOR_INDEX_TAG} operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_URL) orange_${OPERATOR_INDEX_TAG} operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH || $FAKE_RC | |
release-k8s: | |
name: "Index / k8s" | |
needs: [ pr-check, operators-k8s, bundles-k8s ] | |
if: needs.pr-check.outputs.opp_release_ready == '1' && needs.operators-k8s.outputs.opp_uncomplete_operators != '' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
index-tag: ['latest'] | |
fail-fast: false | |
steps: | |
- name: Download operator_info | |
uses: actions/download-artifact@v2 | |
with: | |
name: operator_info | |
path: /tmp/operator-test/ | |
- name: Download converted operators | |
uses: actions/download-artifact@v2 | |
with: | |
name: operators_converted | |
path: /tmp/operator-test/operators | |
- name: Print space info (before) | |
run: | | |
du -h -d 3 /tmp | sort -h -r | |
df -h | |
docker images | |
- name: Index sync | |
env: | |
OPP_LABELS: "${{ needs.pr-check.outputs.opp_labels }}" | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL: "${{ needs.pr-check.outputs.opp_auto_packagemanifest_cluster_version_label }}" | |
OPP_IIB_INSTALL: 0 | |
#OPP_MIRROR_INDEX_ENABLED: 0 | |
OPP_FORCE_INDEX_UPDATE: 1 | |
OPP_SKIP_BUNDLES: 1 | |
IIB_INPUT_REGISTRY_TOKEN: ${{ secrets.IIB_INPUT_REGISTRY_TOKEN }} | |
OPERATOR_INDEX_TAG: ${{ matrix.index-tag }} | |
# OPP_FORCE_OPERATORS: "${{ needs.operators-k8s.outputs.opp_uncomplete_operators }}" | |
OPP_FORCE_OPERATORS: "" | |
OPP_FORCE_OPERATORS_latest: "${{ needs.operators-k8s.outputs.opp_uncomplete_operators_latest }}" | |
run: | | |
echo "OPP_LABELS=$OPP_LABELS" | |
FAKE_RC=false | |
FAKE_TYPE=$(echo $OPERATOR_INDEX_TAG | cut -d '-' -f 2) | |
[[ $FAKE_TYPE == *rc* ]] && FAKE_RC=true || true | |
[[ $FAKE_TYPE == *maintenance* ]] && exit 0 || true | |
bash <(curl -sL $OPP_SCRIPT_CLEANUP_URL) | |
echo "orange_${OPERATOR_INDEX_TAG} operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_URL) orange_${OPERATOR_INDEX_TAG} operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH || $FAKE_RC | |
- name: Print space info (after) | |
if: always() | |
run: | | |
docker exec -t op-test /bin/bash -c "du -h -d 3 /tmp | sort -h -r" || true | |
docker exec -t op-test /bin/bash -c "podman images ; df -h" || true | |
echo "local df:" | |
df -h | |
index-verify-k8s: | |
name: "Index Verify / k8s" | |
needs: [ pr-check, operators-k8s, bundles-k8s, release-k8s] | |
if: needs.pr-check.outputs.opp_release_ready == '1' && needs.operators-k8s.outputs.opp_uncomplete_operators != '' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
index-tag: ['latest'] | |
fail-fast: false | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: python -m pip install --upgrade pip yq | |
- name: Index verify | |
id: index-verify | |
env: | |
OPP_CONTAINER_TOOL: podman | |
run: | | |
MY_TAG=${{ matrix.index-tag }} | |
MY_TAG=$(echo $MY_TAG | cut -d '-' -f 1) | |
MY_INDEXES="quay.io/operatorhubio/catalog_tmp:${MY_TAG}" | |
MY_INDEXES="$MY_INDEXES,quay.io/operatorhubio/catalog_tmp:${MY_TAG}s" | |
MY_INDEXES="$MY_INDEXES,quay.io/operatorhubio/catalog:${MY_TAG}" | |
echo "MY_INDEXES=$MY_INDEXES" | |
echo "$REGISTRY_MIRROR_PW" | $OPP_CONTAINER_TOOL login $OPP_MIRROR_INDEX_REGISTRY -u $OPP_REGISTRY_MIRROR_USER --password-stdin || { echo "Problem to login to '$OPP_MIRROR_INDEX_REGISTRY' !!!"; exit 1; } | |
ansible-pull -U $OPP_ANSIBLE_PULL_REPO -C $OPP_ANSIBLE_PULL_BRANCH -i localhost, -e run_upstream=true -e run_prepare_catalog_repo_upstream=false -e container_tool=$OPP_CONTAINER_TOOL upstream/local.yml --tags reset_tools,index_verify -e iv_indexes="$MY_INDEXES" | |
ohio-image-k8s: | |
name: "OHIO image / k8s" | |
needs: [ pr-check, release-k8s ] | |
if: needs.pr-check.outputs.opp_release_ready == '1' | |
runs-on: ubuntu-latest | |
env: | |
OHIO_INPUT_CATALOG_IMAGE: "quay.io/operatorhubio/catalog_tmp:latest" | |
OHIO_REGISTRY_IMAGE: "quay.io/operator-framework/upstream-community-operators:latest" | |
steps: | |
- name: Ohio image | |
run: | | |
echo "ohio_image operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH" | |
bash <(curl -sL $OPP_SCRIPT_CLEANUP_URL) | |
bash <(curl -sL $OPP_SCRIPT_URL) ohio_image operators/sync $OPP_THIS_REPO $OPP_THIS_BRANCH | |
ohio-page-k8s: | |
name: "Release / operatorhub.io" | |
needs: ohio-image-k8s | |
if: needs.pr-check.outputs.opp_release_ready == '1' | |
runs-on: ubuntu-latest | |
env: | |
CI_OHIO_BRANCH: "latest" | |
REPO_GHA_PAT: ${{ secrets.REPO_GHA_PAT }} | |
steps: | |
- name: Ohio image | |
run: | | |
echo "$OPP_SCRIPT_TRIGGER_OHIO_URL ${CI_OHIO_BRANCH}" | |
bash <(curl -sL $OPP_SCRIPT_TRIGGER_OHIO_URL) ${CI_OHIO_BRANCH} | |
slack-notification: | |
name: "Monitoring notification" | |
needs: [ pr-check, remove-k8s, operators-k8s, release-k8s, index-verify-k8s, ohio-image-k8s, ohio-page-k8s ] | |
if: failure() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Google Chat Notification | |
run: | | |
echo "title: Release pipeline failed: ${{ needs.pr-check.outputs.opp_pr_title }}" | |
echo "subtitle: failure" | |
curl --location --request POST '${{ secrets.GCHAT_WEBHOOK }}' \ | |
--header 'Content-Type: application/json' \ | |
--data-raw '{ | |
"cards": [ | |
{ | |
"header": { | |
"title": "Release pipeline failed: ${{ needs.pr-check.outputs.opp_pr_title }}", | |
"subtitle": "failure" | |
}, | |
"sections": [ | |
{ | |
"widgets": [ | |
{ | |
"buttons": [ | |
{ | |
"textButton": { | |
"text": "Open the release queue", | |
"onClick": { | |
"openLink": { | |
"url": "https://github.com/${{ github.repository }}/actions/workflows/operator_release.yaml" | |
} | |
} | |
} | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
}' |