From 1cdf6fa8d9391b52520f241438bbb029bb8024f1 Mon Sep 17 00:00:00 2001 From: Anshu Babu Date: Sun, 7 Jul 2024 18:39:58 +0530 Subject: [PATCH] ADD GITHUB ACTION --- .github/workflows/ci.yaml | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..4eae2ad --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,57 @@ +name: CI +on: + pull_request: + branches: + - main + push: + branches: + - main +jobs: + build-and-test: + name: Build the project + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: npm ci + - name: Run eslint + run: npm run lint + - name: Test and coverage + run: npm run test + env: + DB_HOST: ${{ secrets.TEST_DB_HOST }} + DB_PORT: ${{ secrets.TEST_DB_PORT }} + DB_USERNAME: ${{ secrets.TEST_DB_USERNAME }} + DB_PASSWORD: ${{ secrets.TEST_DB_PASSWORD }} + DB_NAME: ${{ secrets.TEST_DB_NAME }} + REFRESH_TOKEN_SECRET: ${{ secrets.REFRESH_TOKEN_SECRET }} + JWKS_URI: ${{ secrets.JWKS_URI }} + PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} + - name: Build-ts + run: npm run build + - name: SonarCloud Scan + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + + build-and-push-docker: + name: Build and Push Docker Image + needs: build-and-test + runs-on: ubuntu-latest + env: + IMAGE_NAME: anshub12345/omfo_momo_auth_service + IMAGE_TAG: build-${{ github.run_number }} + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Build Docker image + run: docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} --platform linux/amd64 -f docker/prod/Dockerfile . + - name: Push Docker image to Docker Hub + run: docker push ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}