This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
Release #18
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: The release tag in v*.*.* format | |
required: true | |
env: | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
TAG: ${{ github.event.inputs.tag }} | |
RC_BRANCH: '' # the release branch is based on the RC branch | |
steps: | |
- name: Validate input | |
run: | | |
echo $RC_BRANCH | |
if [[ ! $TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
echo "Wrong tag format provided, please use v*.*.* format" | |
exit 1 | |
fi | |
- name: Define release branch name in the format "release-*.*.*" | |
run: | | |
echo "RC_BRANCH=release-${TAG#v}" >> $GITHUB_ENV | |
- name: Configure git for private modules | |
env: | |
ROBOT_TOKEN: ${{ secrets.ROBOT_TOKEN }} | |
run: git config --global url."https://percona-platform-robot:${ROBOT_TOKEN}@github.com".insteadOf "https://github.com" | |
- name: Configure git userdata for commits | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "Everest RC CI triggered by ${{ github.actor }}" | |
- name: Everest Frontend - check out | |
uses: actions/checkout@v4 | |
with: | |
repository: percona/percona-everest-frontend | |
ref: ${{ env.RC_BRANCH }} | |
path: percona-everest-frontend | |
token: ${{ secrets.ROBOT_TOKEN }} | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Everest Frontend - create tag | |
run: | | |
cd percona-everest-frontend | |
git tag -a $TAG -m "Release ${TAG}" | |
git push origin $TAG | |
- name: Everest Frontend - run with Node 16 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
cache-dependency-path: percona-everest-frontend/pnpm-lock.yaml | |
- name: Everest Frontend - build app | |
run: | | |
cd percona-everest-frontend | |
pnpm install | |
EVEREST_OUT_DIR=build pnpm build | |
mkdir ${GITHUB_WORKSPACE}/front | |
cp -rvf ./build/* ${GITHUB_WORKSPACE}/front/ | |
- name: Everest Backend - check out | |
uses: actions/checkout@v4 | |
with: | |
path: ./backend | |
ref: ${{ env.RC_BRANCH }} | |
- name: Everest Backend - create tag | |
run: | | |
cd backend | |
# update image names in scripts. since the branch is created based on the RC-branch, | |
# the perconalab/everest:vX.Y.Z image reference is already present in the scripts | |
sed -i "s/perconalab\/everest/percona\/percona-everest/g" deploy/quickstart-compose.yml deploy/quickstart-k8s.yaml | |
echo "$(git diff deploy/quickstart-compose.yml deploy/quickstart-k8s.yaml)" | |
git commit -a -m "update scripts" | |
git tag -a $TAG -m "Release ${TAG}" | |
git push origin $TAG | |
- name: Everest Backend - Embed Everest Frontend app into backend | |
run: | | |
cp -rf ${GITHUB_WORKSPACE}/front/* ${GITHUB_WORKSPACE}/backend/public/dist/ | |
cd ${GITHUB_WORKSPACE}/backend | |
- uses: actions/setup-go@v4 | |
with: | |
go-version-file: './backend/go.mod' | |
- name: Build Everest release | |
run: | | |
cd ${GITHUB_WORKSPACE}/backend | |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make release | |
- name: Everest - Setup docker build metadata | |
uses: docker/metadata-action@v5 | |
id: meta | |
with: | |
images: percona/percona-everest | |
tags: | | |
${{ env.TAG }} | |
latest | |
- name: Everest - Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Everest - Build and Push everest release image | |
uses: docker/build-push-action@v5 | |
with: | |
context: backend | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} |