name: data-proxy-code-tests on: pull_request: branches: - main - staging - master jobs: check: name: check for changes in data-proxy outputs: run_data-proxy_tests: ${{ steps.check_files.outputs.run_data-proxy_tests }} runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 2 - name: check modified app folder id: check_files run: | echo "=============== list modified files ===============" git diff --name-only HEAD^ HEAD echo "========== check paths of modified files ==========" git diff --name-only HEAD^ HEAD > files.txt echo "run_data-proxy_tests=false" >>$GITHUB_OUTPUT while IFS= read -r file do echo $file if [[ $file == src/data-proxy/* ]]; then echo "run_data-proxy_tests=true" >>$GITHUB_OUTPUT fi done < files.txt drive: name: data-proxy code tests needs: [check] if: needs.check.outputs.run_data-proxy_tests == 'true' runs-on: ubuntu-latest defaults: run: working-directory: src/data-proxy steps: - name: Checkout uses: actions/checkout@v3.5.2 - name: Authenticate to Google Cloud uses: google-github-actions/auth@v1.1.0 with: credentials_json: ${{ secrets.GCP_SA_CREDENTIALS }} - name: Set up gcloud Cloud SDK environment uses: google-github-actions/setup-gcloud@v1.1.0 - name: Add .env files run: | gcloud secrets versions access latest --secret="sta-env-data-proxy" > .env gcloud secrets versions access latest --secret="prod-env-data-proxy" > .env - name: Node setup uses: actions/setup-node@v2 with: node-version: '14' - name: Install requirements run: npm install - name: Run tests and collect coverage run: npm run test-coverage continue-on-error: true - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}