From 355e84131292d83ca10b54ecda57d3fae5b5f18a Mon Sep 17 00:00:00 2001 From: Oksana Grishchenko Date: Wed, 20 Sep 2023 11:19:13 +0200 Subject: [PATCH] u --- .github/workflows/rc.yml | 251 +++++++++++++-------------------------- 1 file changed, 81 insertions(+), 170 deletions(-) diff --git a/.github/workflows/rc.yml b/.github/workflows/rc.yml index f51fa511..ee20fee8 100644 --- a/.github/workflows/rc.yml +++ b/.github/workflows/rc.yml @@ -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 "oksana.grishchenko@percona.com" - 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 }}