From b830dd7823986b124eb820cd61e9fa5f3c1b829e Mon Sep 17 00:00:00 2001 From: princegupta1131 <114015020+princegupta1131@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:39:38 +0530 Subject: [PATCH] ED-4000 feat: Github actions instead of Jenkins-test-sonar-fix --- .github/workflows/Build.yml | 198 +++++++++++------------------------- 1 file changed, 58 insertions(+), 140 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 81eb886c0e6..b36be83c2b5 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -1,4 +1,4 @@ -name: Build +name: Build-Test on: push: @@ -7,12 +7,10 @@ on: pull_request: branches: - "*" # Trigger on pull request to any branch - # workflow_dispatch: # Manual trigger - # pull_request_target: # This is to access secrets from forked PRs jobs: - build: - name: Build + ci-cd-TestCases: + name: Build-Test runs-on: ubuntu-latest steps: @@ -24,139 +22,59 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: - 18 + node-version: 18 - # Save branch name for use in the next workflow - # - name: Save branch name - # run: echo "${GITHUB_REF#refs/heads/}" > branch.txt - - # - name: Upload branch name - # uses: actions/upload-artifact@v3 - # with: - # name: branch-name - # path: branch.txt - # # Install client dependencies - # - name: Install client dependencies - # working-directory: src/app/client - # run: yarn install --no-progress --production=true - # # Build the client - # - name: Build client - # working-directory: src/app/client - # run: npm run build - # # List all files after the build - # - name: List all files after build - # working-directory: src/app/client - # run: find . -type f - # # Check if the dist directory exists and list its contents - # - name: Check if dist directory exists and list contents - # working-directory: src/app/client - # run: | - # if [ -d dist ]; then - # echo "dist directory exists. Listing contents:" - # ls -l dist - # else - # echo "dist directory does not exist" - # fi - # # Move index.html to index.ejs if it exists - # - name: Move index.html to index.ejs if it exists - # working-directory: src/app/client - # run: | - # if [ -f dist/index.html ]; then - # mv dist/index.html dist/index.ejs - # else - # echo "File dist/index.html does not exist" - # fi - # # Set up server directories - # - name: Set up server directories - # run: mkdir -p $GITHUB_WORKSPACE/app_dist - # Copy server files to the destination directory - # - name: Copy server files - # run: | - # cp -r src/app/libs src/app/helpers src/app/proxy src/app/resourcebundles src/app/package.json src/app/framework.config.js src/app/sunbird-plugins src/app/routes src/app/constants src/app/controllers src/app/server.js $GITHUB_WORKSPACE/app_dist/ - # shell: /usr/bin/bash -e {0} - # Install server dependencies - # - name: Install server dependencies - # working-directory: ${{ github.workspace }}/app_dist - # run: yarn install --ignore-engines --no-progress --production=true - # Run server build script - # - name: Run server build script - # working-directory: ${{ github.workspace }}/app_dist - # run: node helpers/resourceBundles/build.js -task="phraseAppPull" - # Execute test cases using JEST - # - name: Execute test cases using JEST - # working-directory: src/app/client - # run: | - # yarn config set ignore-engines true - # yarn install - # npm run test:ci - - # Debug: Print the masked SONAR_TOKEN - # - name: Print SONAR_TOKEN - # run: echo "SONAR_TOKEN=${{ secrets.SONAR_TOKEN }}PWR****123" - - # #Install Sonar Scanner - # - name: Install Sonar Scanner - # run: | - # cd /tmp - # wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip - # sudo apt-get install -y unzip - # unzip sonar-scanner-cli-5.0.1.3006-linux.zip - # cd - - - # # Run SonarScanner for frontend (Angular) - # - name: Run SonarScanner for frontend - # env: - # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - # run: | - # /tmp/sonar-scanner-5.0.1.3006-linux/bin/sonar-scanner \ - # -Dsonar.login=$SONAR_TOKEN - - # - name: Run Sonar Scanner - # env: - # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - # run: | - # /tmp/sonar-scanner-5.0.1.3006-linux/bin/sonar-scanner \ - # -Dsonar.projectKey=Sunbird-Ed_SunbirdEd-portal \ - # -Dsonar.sources=src/app/client/src \ - # -Dsonar.organization=sunbird-ed \ - # -Dsonar.host.url=https://sonarcloud.io \ - # -Dsonar.login=$SONAR_TOKEN - - # Install SonarScanner globally using npm - # - name: Install SonarScanner - # run: - # npm install -g sonarqube-scanner - - # # Check if SONAR_TOKEN is set - # - name: Check SONAR_TOKEN - # run: | - # if [ -z "${{ secrets.SONAR_TOKEN }}" ]; then - # echo "Error: SONAR_TOKEN is not set." - - # else - # echo "SONAR_TOKEN is set." - # fi - - # Debug: Print the masked SONAR_TOKEN - # - name: Print SONAR_TOKEN - # run: echo "SONAR_TOKEN=${{ secrets.SONAR_TOKEN }}PWR****123" - # # Ensure sonar-project.properties exists and print its content for debugging - # - name: Check sonar-project.properties - # run: | - # if [ -f sonar-project.properties ]; then - # echo "Found sonar-project.properties" - # cat sonar-project.properties - # else - # echo "sonar-project.properties not found" - # fi - # # Run SonarScanner in the specified directory - # - name: Run SonarScanner - # env: - # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - # run: | - # sonar-scanner \ - # -Dsonar.projectKey=Sunbird-Ed_SunbirdEd-portal \ - # -Dsonar.organization=sunbird-ed \ - # -Dsonar.sources=src/app/client/src \ - # -Dsonar.login=$SONAR_TOKEN + # Install client dependencies + - name: Install client dependencies + working-directory: src/app/client + run: yarn install --no-progress --production=true + # Build the client + - name: Build client + working-directory: src/app/client + run: npm run build + # List all files after the build + - name: List all files after build + working-directory: src/app/client + run: find . -type f + # Check if the dist directory exists and list its contents + - name: Check if dist directory exists and list contents + working-directory: src/app/client + run: | + if [ -d dist ]; then + echo "dist directory exists. Listing contents:" + ls -l dist + else + echo "dist directory does not exist" + fi + # Move index.html to index.ejs if it exists + - name: Move index.html to index.ejs if it exists + working-directory: src/app/client + run: | + if [ -f dist/index.html ]; then + mv dist/index.html dist/index.ejs + else + echo "File dist/index.html does not exist" + fi + # Set up server directories + - name: Set up server directories + run: mkdir -p $GITHUB_WORKSPACE/app_dist + #Copy server files to the destination directory + - name: Copy server files + run: | + cp -r src/app/libs src/app/helpers src/app/proxy src/app/resourcebundles src/app/package.json src/app/framework.config.js src/app/sunbird-plugins src/app/routes src/app/constants src/app/controllers src/app/server.js $GITHUB_WORKSPACE/app_dist/ + shell: /usr/bin/bash -e {0} + #Install server dependencies + - name: Install server dependencies + working-directory: ${{ github.workspace }}/app_dist + run: yarn install --ignore-engines --no-progress --production=true + #Run server build script + - name: Run server build script + working-directory: ${{ github.workspace }}/app_dist + run: node helpers/resourceBundles/build.js -task="phraseAppPull" + #Execute test cases using JEST + - name: Execute test cases using JEST + working-directory: src/app/client + run: | + yarn config set ignore-engines true + yarn install + npm run test:ci