ci: Copy 7.94.0 csv to main (#1933) #110
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
# | |
# Copyright (c) 2019-2023 Red Hat, Inc. | |
# This program and the accompanying materials are made | |
# available under the terms of the Eclipse Public License 2.0 | |
# which is available at https://www.eclipse.org/legal/epl-2.0/ | |
# | |
# SPDX-License-Identifier: EPL-2.0 | |
# | |
# Contributors: | |
# Red Hat, Inc. - initial API and implementation | |
# | |
# This Workflow creates PRs for the release of the latest chectl | |
name: Release chectl | |
on: | |
# manual trigger if required | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'The version that is going to be released. Should be in format 7.y.z' | |
required: true | |
default: '7.y.z' | |
forceflag: | |
description: 'To force creation of .x branch, use --force flag here' | |
default: '' | |
# trigger on commit to main branch of new CSVs, eg., https://github.com/eclipse-che/che-operator/pull/571/files | |
push: | |
branches: | |
- main | |
paths: | |
- 'version/version.go' | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Set up environment | |
run: | | |
sudo apt-get update -y || true | |
sudo apt-get -y -q install curl bash git | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
- name: Install yq | |
run: | | |
python -m pip install --upgrade pip | |
pip install yq | |
- name: Release chectl PRs | |
run: | | |
git config --global user.name "Mykhailo Kuznietsov" | |
git config --global user.email "[email protected]" | |
export GITHUB_TOKEN=${{ secrets.CHE_INCUBATOR_BOT_GITHUB_TOKEN }} | |
set -e | |
# if not run manually, need to compute chectl version from latest released CSV | |
if [[ "${{ github.event.inputs.version }}" == "" ]] || [[ "${{ github.event.inputs.version }}" == "7.y.z" ]]; then | |
chectlVersion=$(grep Version version/version.go | cut -d \" -f2) | |
else | |
chectlVersion="${{ github.event.inputs.version }}" | |
fi | |
# generic method to call a GH action and pass in a single var=val parameter | |
invokeAction() { | |
this_repo=$1 | |
this_action_name=$2 | |
this_workflow_id=$3 | |
this_workflow_ref=$4 | |
this_params=$5 | |
# can compute using GH API | |
# workflow_id=$(curl -sSL https://api.github.com/repos/${this_repo}/actions/workflows -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" | jq --arg search_field "${this_action_name}" '.workflows[] | select(.name == $search_field).id'); # echo "workflow_id = $workflow_id" | |
# or just pass it in | |
workflow_id=$this_workflow_id | |
inputsJson="{}" | |
IFS=',' read -ra paramMap <<< "${this_params}" | |
for keyvalue in "${paramMap[@]}" | |
do | |
key=${keyvalue%=*} | |
value=${keyvalue#*=} | |
echo $var1 | |
inputsJson=$(echo "${inputsJson}" | jq ". + {\"${key}\": \"${value}\"}") | |
done | |
curl -sSL https://api.github.com/repos/${this_repo}/actions/workflows/${workflow_id}/dispatches -X POST -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github.v3+json" -d "{\"ref\":\"${this_workflow_ref}\",\"inputs\": ${inputsJson} }" | |
echo "[INFO] Invoked '${this_action_name}' action ($workflow_id) - see https://github.com/${this_repo}/actions?query=workflow%3A%22${this_action_name// /+}%22" | |
} | |
# invoke action from chectl repo | |
invokeAction che-incubator/chectl "Release - create pull request for upcoming release" "4008310" "main" "version=${chectlVersion}" |