Skip to content

test dispatch in other repo #245

test dispatch in other repo

test dispatch in other repo #245

Workflow file for this run

---
name: Release
on:
push:
branches:
- EVEREST-107-run-helm-release
permissions:
contents: write
packages: write
checks: write
pull-requests: write
jobs:
build:
runs-on: ubuntu-latest
env:
TOOLS_PATH: "/opt/tools/bin"
VERSION: ${{ github.event.inputs.version }}
# version in format "X.Y" which is going to be updated with each patch release
FLOATING_TAG: ""
# branch name in format "release-X.Y"
BRANCH_NAME: ""
# GitHub tag name to use for the RC/Release
GH_TAG: ""
# Shows if this workflow is triggered for RC or Release
IS_RC: 0
ARCH: ""
OS: ""
steps:
- name: Trigger workflow in repo A
run: |
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${{ secrets.ROBOT_TOKEN }}" \
-d '{"ref": "main"}' \
https://github.com/percona/percona-helm-charts/actions/workflows/everest-release.yaml/dispatches
# - name: Validate input
# run: |
# if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-rc[1-9][0-9]*)?$ ]]; then
# echo "Wrong version format provided, please use "X.Y.Z-rcN" format for an RC or "X.Y.Z" format for a release"
# exit 1
# fi
#
# - name: Set environment variables
# run: |
# floating_tag=${VERSION%.*}
# echo "FLOATING_TAG=$floating_tag" >> $GITHUB_ENV
# echo "BRANCH_NAME=release-$floating_tag" >> $GITHUB_ENV
# echo "GH_TAG=v$VERSION" >> $GITHUB_ENV
# if [[ ! $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
# echo "IS_RC=1" >> $GITHUB_ENV
# fi
# echo "ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" >> $GITHUB_ENV
# echo "OS=$(uname | awk '{print tolower($0)}')" >> $GITHUB_ENV
#
# - name: Operator - check out
# uses: actions/checkout@v4
# with:
# repository: percona/everest-operator
# path: everest-operator
# token: ${{ secrets.ROBOT_TOKEN }}
#
# - name: Operator - create release branch
# run: |
# cd everest-operator
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
#
# git checkout $BRANCH_NAME
#
# # update version in the Makefile
# sed -i "s/^VERSION ?=.*/VERSION ?= $VERSION/g" Makefile
#
# # if there is something to commit, commit it and add the tag
# if [[ -n $(git status --porcelain) ]]; then
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
#
# # update IMAGE_TAG_OWNER in the Makefile to point to a correct org
# if [[ $IS_RC == 1 ]]; then
# # if the RC build is being run over a Release build, there will be the "percona" org mentioned in the quickstart file,
# # so we should replace the org
# sed -i "s/IMAGE_TAG_OWNER ?= docker.io\/percona\$/IMAGE_TAG_OWNER ?= docker.io\/perconalab/g" Makefile
# else
# sed -i "s/IMAGE_TAG_OWNER ?= docker.io\/perconalab/IMAGE_TAG_OWNER ?= docker.io\/percona/g" Makefile
# fi
#
# make init
# make release
#
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# # commit and push the updated files
# git commit -a -m "update version tag"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
# else
# echo "No need for a new build"
# fi
#
# - name: Operator - install operator-sdk
# run: |
# mkdir -p $TOOLS_PATH
# echo $TOOLS_PATH >> $GITHUB_PATH
#
# export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.38.0
# curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH}
#
# gpg --keyserver keyserver.ubuntu.com --recv-keys 052996E2A20B5C7E
#
# curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt
# curl -LO ${OPERATOR_SDK_DL_URL}/checksums.txt.asc
# gpg -u "Operator SDK (release) <[email protected]>" --verify checksums.txt.asc
#
# grep operator-sdk_${OS}_${ARCH} checksums.txt | sha256sum -c -
#
# chmod +x operator-sdk_${OS}_${ARCH}
# mv operator-sdk_${OS}_${ARCH} $TOOLS_PATH/operator-sdk
#
# - name: Operator - build and bundle
# run: |
# cd everest-operator
# make build manifests bundle
#
# - name: Operator - setup Docker meta for everest-operator
# id: operator_meta
# uses: docker/metadata-action@v5
# # docker/metadata-action action looks more elegant when being triggered by a GH tag,
# # however this workflow can't be triggered by a GH tag since there are some changes need to be done
# # in the codebase prior putting the tag, so the action uses the raw tags
# with:
# images: |
# percona/everest-operator,enable=${{ env.IS_RC == 0 }}
# perconalab/everest-operator
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=latest
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
# - name: Operator - setup Docker meta for everest-operator-bundle
# id: bundle_meta
# uses: docker/metadata-action@v5
# with:
# images: |
# percona/everest-operator-bundle,enable=${{ env.IS_RC == 0 }}
# perconalab/everest-operator-bundle
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
#
# - name: Operator - build everest-operator image
# uses: docker/build-push-action@v6
# with:
# context: everest-operator
# push: false
# tags: ${{ steps.operator_meta.outputs.tags }}
#
#
# - name: Operator - push everest-operator image
# uses: docker/build-push-action@v6
# with:
# context: everest-operator
# push: true
# tags: ${{ steps.operator_meta.outputs.tags }}
#
# - name: Operator - build everest-operator-bundle image
# uses: docker/build-push-action@v6
# with:
# context: everest-operator
# push: false
# tags: ${{ steps.bundle_meta.outputs.tags }}
# file: everest-operator/bundle.Dockerfile
#
#
# - name: Operator - push everest-operator-bundle image
# uses: docker/build-push-action@v6
# with:
# context: everest-operator
# push: true
# tags: ${{ steps.bundle_meta.outputs.tags }}
# file: everest-operator/bundle.Dockerfile
#
# - name: Catalog - checkout
# uses: actions/checkout@v4
# with:
# repository: percona/everest-catalog
# path: everest-catalog
# token: ${{ secrets.ROBOT_TOKEN }}
#
# - name: Catalog - create release branch
# run: |
# cd everest-catalog
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
#
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
# git checkout $BRANCH_NAME
#
# # if the tag doesn't exist yet, create it
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
#
# - name: Catalog - update veneer file
# run: |
# cd everest-catalog/tools
#
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# if [[ $IS_RC == 1 ]]; then
# go run . \
# --veneer-file ../veneer/everest-operator.yaml \
# --channel fast-v0 \
# --new-version ${{ env.VERSION }}
# else
# go run . \
# --veneer-file ../veneer/everest-operator.yaml \
# --channel stable-v0 \
# --new-version ${{ env.VERSION }}
#
# go run . \
# --veneer-file ../veneer/everest-operator.yaml \
# --channel fast-v0 \
# --new-version ${{ env.VERSION }}
# fi
#
# cd ..
# curl -Lo /tmp/opm https://github.com/operator-framework/operator-registry/releases/download/v1.44.0/${OS}-${ARCH}-opm
# chmod +x /tmp/opm
# /tmp/opm alpha render-template basic -o yaml < veneer/everest-operator.yaml > catalog/everest-operator/catalog.yaml
#
# # Check if veneer has the new version listed
# if ! grep -q "$VERSION$" catalog/everest-operator/catalog.yaml; then
# echo "catalog/everest-operator/catalog.yaml does not include the version $VERSION"
# exit 1
# fi
#
# git commit -am "CI: add version ${{ env.VERSION }}"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
#
# - name: Catalog - docker meta
# id: catalog_meta
# uses: docker/metadata-action@v5
# with:
# images: |
# percona/everest-catalog,enable=${{ env.IS_RC == 0 }}
# perconalab/everest-catalog
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
# - name: Catalog - build image
# uses: docker/build-push-action@v6
# with:
# context: everest-catalog
# push: false
# tags: ${{ steps.catalog_meta.outputs.tags }}
# file: everest-catalog/everest-catalog.Dockerfile
#
#
# - name: Catalog - push image
# uses: docker/build-push-action@v6
# with:
# context: everest-catalog
# push: true
# tags: ${{ steps.catalog_meta.outputs.tags }}
# file: everest-catalog/everest-catalog.Dockerfile
#
# - name: Everest - check out
# uses: actions/checkout@v4
# with:
# token: ${{ secrets.ROBOT_TOKEN }}
#
# - name: Everest - setup golang
# uses: actions/setup-go@v5
# with:
# go-version-file: "./go.mod"
#
# - name: Everest - create and update release branch
# run: |
# # Check if the branch already exists
# git fetch
# check_branch=$(git ls-remote --heads origin ${BRANCH_NAME})
#
# if [[ -z ${check_branch} ]]; then
# git checkout -b $BRANCH_NAME
# git push origin $BRANCH_NAME
# fi
# git checkout $BRANCH_NAME
#
# # Update the operator go module to reference the version tag
# go get github.com/percona/everest-operator@$GH_TAG
# go mod tidy
#
# # Change version in Makefile
# sed -i "s/RELEASE_VERSION ?=.*/RELEASE_VERSION ?= v$VERSION/g" Makefile
#
# # if there is something to commit, commit it and add the tag
# if [[ -n $(git status --porcelain) ]]; then
# if git tag --list | grep -q "^$GH_TAG$"; then
# echo "The tag is already present in github. Please create a different RC/Release"
# exit 1
# fi
# # configure userdata for commits
# git config --global user.email "[email protected]"
# git config --global user.name "Everest RC CI triggered by ${{ github.actor }}"
#
# # commit and push the updated files
# git commit -a -m "update version tag"
# git push origin $BRANCH_NAME
#
# git tag $GH_TAG
# git push origin $GH_TAG
# fi
#
# - name: Everest UI - setup pnpm
# uses: pnpm/action-setup@v4
# with:
# version: 9.4.0
#
# - name: Everest UI - run with Node 20
# uses: actions/setup-node@v4
# with:
# node-version: 20.x
# cache: "pnpm"
# cache-dependency-path: ui/pnpm-lock.yaml
#
# - name: Everest UI - build
# run: |
# cd ui
# pnpm install
# EVEREST_OUT_DIR=${GITHUB_WORKSPACE}/public/dist/ pnpm build
#
# - name: Everest - build binary
# run: |
# if [[ $IS_RC == 1 ]]; then
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make rc
# else
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make release
# fi
#
# - name: Everest - setup docker build metadata
# uses: docker/metadata-action@v5
# id: everest_meta
# with:
# images: |
# percona/everest,enable=${{ env.IS_RC == 0 }}
# perconalab/everest
# tags: |
# type=raw,value=${{ env.VERSION }}
# type=raw,value=latest
# type=raw,value=${{ env.FLOATING_TAG }},enable=${{ env.IS_RC == 0 }}
#
# - name: Everest - build Everest image
# uses: docker/build-push-action@v6
# with:
# context: .
# push: false
# tags: ${{ steps.everest_meta.outputs.tags }}
#
#
# - name: Everest - push Everest image
# uses: docker/build-push-action@v6
# with:
# context: .
# push: true
# tags: ${{ steps.everest_meta.outputs.tags }}
#
# - name: CLI - build binaries
# run: |
# make release-cli
#
# - name: CLI - create release with binaries
# uses: softprops/action-gh-release@v2
# with:
# draft: true
# files: |
# dist/*