Files
brachwise-cicd/build-and-test-sonarqube.yaml

102 lines
3.9 KiB
YAML

name: Zing_hr_frontend
on:
push:
branches:
- main
- beta
- testing
- client
- staging
- production
pull_request:
branches:
- main
- beta
- testing
- client
- staging
- production
jobs:
ZingHR-Frontend-Build-Test:
name: Build and Test PR
if: github.event_name == 'pull_request' && github.base_ref == 'testing'
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Installing Dependecies
run: npm i --legacy-peer-deps
- name: Check Build
run: npm run build
- name: Auditing Node Dependecies
run: npm audit --audit-level=critical
- name: Checkout Code
uses: actions/checkout@v3
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: SonarQube Scan
uses: kitabisa/sonarqube-action@v1.2.0
with:
host: ${{ secrets.SONARQUBE_HOST }}
login: ${{ secrets.SONARQUBE_TOKEN }}
Build and Deploy Zing_hr_frontend:
if: github.event_name == 'push' && github.ref_name == 'testing'
runs-on: ubuntu-latest
steps:
- name: Checkout Code in Runner
uses: actions/checkout@v3
- name: Branch and Folder Selection for Deployment
run: |
BRANCH_NAME=${{ gitea.ref_name }}
case $BRANCH_NAME in
beta)
echo "PROJECT_FOLDER=null" >> $GITHUB_ENV
PROJECT_FOLDER="null"
echo "PM2_ID=null" >> $GITHUB_ENV
;;
testing)
echo "PROJECT_FOLDER=/home/zinghr/Test_Release/zing_hr_frontend" >> $GITHUB_ENV
PROJECT_FOLDER="/home/zinghr/Test_Release/zing_hr_frontend"
echo "PM2_ID=3" >> $GITHUB_ENV
;;
client)
echo "PROJECT_FOLDER=/home/zinghr/Client_Release/zing_hr_frontend" >> $GITHUB_ENV
PROJECT_FOLDER="/home/zinghr/Client_Release/zing_hr_frontend"
echo "PM2_ID=4" >> $GITHUB_ENV
;;
*)
echo "Unknown Branch"
exit 1
;;
esac
echo "BRANCH_NAME=${{ gitea.ref_name }}" >> $GITHUB_ENV
echo "SELECTED BRANCH : $BRANCH_NAME"
echo "SELECTED FOLDER : $PROJECT_FOLDER"
- name: Deployment to Server SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.BETA_SERVER_HOST }}
username: ${{ secrets.BETA_SERVER_USERNAME }}
password: ${{ secrets.BETA_SERVER_PASSWORD }}
port: ${{ secrets.BETA_SERVER_PORT }}
envs: BRANCH_NAME,PROJECT_FOLDER,PM2_ID
script: |
set -xe
echo $BRANCH_NAME
echo $PROJECT_FOLDER
cd $PROJECT_FOLDER
git fetch origin
git reset --hard origin/$BRANCH_NAME
git pull origin $BRANCH_NAME
echo "BUILDING..... "
npm i --legacy-peer-deps
npm run build
pm2 restart $PM2_ID