This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7b87856
commit 355e841
Showing
1 changed file
with
81 additions
and
170 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,185 +1,96 @@ | ||
name: Build and push RC image | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
version: | ||
description: The release version in v*.*.* format | ||
required: true | ||
push: | ||
branches: | ||
- release-[0-9]+.[0-9]+.[0-9]+* | ||
- EVEREST-428-rc-pipeline # <-- DELETE ME before merge | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
env: | ||
#VERSION: ${{ github.event.inputs.version }} # <-- UNCOMMENT ME before merge | ||
VERSION: v100.100.100 # <-- DELETE ME before merge | ||
RC_BRANCH: '' | ||
VERSION: '' | ||
RELEASE_BRANCH_NAME: '' | ||
steps: | ||
- name: Validate input | ||
- name: Extract branch name | ||
run: | | ||
echo $RC_BRANCH | ||
if [[ ! $VERSION =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
echo "Wrong version format provided, please use v*.*.* format" | ||
exit 1 | ||
fi | ||
- name: Define release branch name in the format "release-*.*.*" | ||
run: | | ||
echo "RC_BRANCH=release-${VERSION#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: Check out Everest CLI | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: percona/percona-everest-cli | ||
ref: 'main' | ||
path: percona-everest-cli | ||
token: ${{ secrets.ROBOT_TOKEN }} | ||
|
||
- name: Check out Everest CLI RC-branch | ||
run: | | ||
cd percona-everest-cli | ||
# Check if the branch already exists | ||
git fetch | ||
check_branch=$(git ls-remote --heads origin ${RC_BRANCH}) | ||
if [[ -z ${check_branch} ]]; then | ||
git checkout -b $RC_BRANCH | ||
# git push origin $RC_BRANCH <--- UNCOMMENT ME once the permission granted to ROBOT_TOKEN | ||
fi | ||
- name: Check out Everest catalog | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: percona/everest-catalog | ||
ref: 'main' | ||
path: everest-catalog | ||
token: ${{ secrets.ROBOT_TOKEN }} | ||
|
||
- name: Check out Everest catalog RC-branch | ||
run: | | ||
cd everest-catalog | ||
# Check if the branch already exists | ||
git fetch | ||
check_branch=$(git ls-remote --heads origin ${RC_BRANCH}) | ||
if [[ -z ${check_branch} ]]; then | ||
git checkout -b $RC_BRANCH | ||
# git push origin $RC_BRANCH <--- UNCOMMENT ME once the permission granted to ROBOT_TOKEN | ||
fi | ||
echo "RELEASE_BRANCH_NAME=v${GITHUB_REF##*/}#release-" >> $GITHUB_ENV | ||
echo $RELEASE_BRANCH_NAME | ||
- name: Check out Everest frontend | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: percona/percona-everest-frontend | ||
ref: 'main' | ||
path: percona-everest-frontend | ||
token: ${{ secrets.ROBOT_TOKEN }} | ||
|
||
- name: Check out Everest Frontend RC-branch | ||
- name: Extract version from the branch name | ||
run: | | ||
cd percona-everest-frontend | ||
# Check if the branch already exists | ||
git fetch | ||
check_branch=$(git ls-remote --heads origin ${RC_BRANCH}) | ||
if [[ -z ${check_branch} ]]; then | ||
git checkout -b $RC_BRANCH | ||
# git push origin $RC_BRANCH <--- UNCOMMENT ME once the permission granted to ROBOT_TOKEN | ||
else | ||
git checkout $RC_BRANCH | ||
fi | ||
- name: Run with Node 16 | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Install Bit Version Manager | ||
run: npm i -g @teambit/bvm | ||
|
||
- name: Install latest Bit version | ||
run: bvm install 0.2.3 | ||
|
||
- name: Add bvm bin folder to path | ||
run: echo "$HOME/bin" >> $GITHUB_PATH | ||
|
||
- name: Set up bit config | ||
env: | ||
BIT_TOKEN: ${{ secrets.BIT_TOKEN }} | ||
run: bit config set user.token $BIT_TOKEN | ||
|
||
- name: Build Everest Frontend app | ||
run: | | ||
cd ${GITHUB_WORKSPACE}/percona-everest-frontend | ||
bit install --recurring-install | ||
bit snap | ||
bit artifacts percona.apps/everest --out-dir build | ||
mkdir ${GITHUB_WORKSPACE}/front | ||
cp -rf build/percona.apps_everest/react-common-js/everest/public/* ${GITHUB_WORKSPACE}/front/ | ||
- name: Check out Everest Backend | ||
uses: actions/checkout@v4 | ||
with: | ||
path: ./backend | ||
ref: 'main' | ||
|
||
- name: Check out Everest Backend rc-branch | ||
run: | | ||
cd backend | ||
# Check if the branch already exists | ||
git fetch | ||
check_branch=$(git ls-remote --heads origin ${RC_BRANCH}) | ||
if [[ -z ${check_branch} ]]; then | ||
git checkout -b $RC_BRANCH | ||
# update tag refs in scripts | ||
sed -i "s/dev-latest/$RC_BRANCH/g" deploy/quickstart-compose.yml deploy/quickstart-k8s.yaml | ||
# configure userdata for commits | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Everest RC CI" | ||
# commit and push the updated files | ||
git commit -a -m "update version tag" | ||
git push origin $RC_BRANCH | ||
else | ||
git checkout $RC_BRANCH | ||
fi | ||
- name: Embed Everest Frontend app into backend | ||
run: | | ||
cp -rf ${GITHUB_WORKSPACE}/front/* ${GITHUB_WORKSPACE}/backend/public/dist/ | ||
cd ${GITHUB_WORKSPACE}/backend | ||
- name: Setup docker build metadata | ||
uses: docker/metadata-action@v4 | ||
id: meta | ||
with: | ||
images: perconalab/everest | ||
tags: ${{ env.VERSION }} | ||
|
||
|
||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
|
||
- name: Build and Push everest RC-image | ||
uses: docker/build-push-action@v4 | ||
with: | ||
context: backend | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
echo "VERSION=v${#release-}" >> $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: Check out Everest frontend | ||
# uses: actions/checkout@v4 | ||
# with: | ||
# repository: percona/percona-everest-frontend | ||
# ref: 'main' | ||
# path: percona-everest-frontend | ||
# token: ${{ secrets.ROBOT_TOKEN }} | ||
# | ||
# | ||
# - name: Run with Node 16 | ||
# uses: actions/setup-node@v3 | ||
# with: | ||
# node-version: ${{ matrix.node-version }} | ||
# | ||
# - name: Install Bit Version Manager | ||
# run: npm i -g @teambit/bvm | ||
# | ||
# - name: Install latest Bit version | ||
# run: bvm install 0.2.3 | ||
# | ||
# - name: Add bvm bin folder to path | ||
# run: echo "$HOME/bin" >> $GITHUB_PATH | ||
# | ||
# - name: Set up bit config | ||
# env: | ||
# BIT_TOKEN: ${{ secrets.BIT_TOKEN }} | ||
# run: bit config set user.token $BIT_TOKEN | ||
# | ||
# - name: Build Everest Frontend app | ||
# run: | | ||
# cd ${GITHUB_WORKSPACE}/percona-everest-frontend | ||
# bit install --recurring-install | ||
# bit snap | ||
# bit artifacts percona.apps/everest --out-dir build | ||
# mkdir ${GITHUB_WORKSPACE}/front | ||
# cp -rf build/percona.apps_everest/react-common-js/everest/public/* ${GITHUB_WORKSPACE}/front/ | ||
# | ||
# - name: Check out Everest Backend | ||
# uses: actions/checkout@v4 | ||
# with: | ||
# path: ./backend | ||
# ref: 'main' | ||
# | ||
# - name: Embed Everest Frontend app into backend | ||
# run: | | ||
# cp -rf ${GITHUB_WORKSPACE}/front/* ${GITHUB_WORKSPACE}/backend/public/dist/ | ||
# cd ${GITHUB_WORKSPACE}/backend | ||
# | ||
# - name: Setup docker build metadata | ||
# uses: docker/metadata-action@v4 | ||
# id: meta | ||
# with: | ||
# images: perconalab/everest | ||
# tags: ${{ env.VERSION }} | ||
# | ||
# | ||
# - name: Login to GitHub Container Registry | ||
# uses: docker/login-action@v2 | ||
# with: | ||
# username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
# password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
# | ||
# - name: Build and Push everest RC-image | ||
# uses: docker/build-push-action@v4 | ||
# with: | ||
# context: backend | ||
# push: true | ||
# tags: ${{ steps.meta.outputs.tags }} |