name: QPP Measures Data Feature PR CI/Checks
on:
  pull_request:
    types: [opened, synchronize]
    branches: [ develop ]

permissions:
  id-token: write  # Required for OIDC
  contents: read


jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Configure AWS Credentials via OIDC
        uses: aws-actions/configure-aws-credentials@v6
        with:
          role-to-assume: arn:aws:iam::730335206644:role/delegatedadmin/developer/qppa-github-actions-role-1
          aws-region: us-east-1

      - name: Retrieve GitHub service account token from secops account
        id: get-token
        run: |
          SECRET_VALUE=$(aws secretsmanager get-secret-value \
            --secret-id "arn:aws:secretsmanager:us-east-1:863249929524:secret:qpp/qppa/github/token/automation-bhLO2e" \
            --query SecretString \
            --output text | jq -r ".GITHUB_TOKEN")
          echo "::add-mask::$SECRET_VALUE"
          echo "GITHUB_TOKEN=$SECRET_VALUE" >> $GITHUB_OUTPUT
      - name: Check for open beta version
        env:
          GITHUB_TOKEN: ${{ steps.get-token.outputs.GITHUB_TOKEN }}
        run: |
          echo "Fetching draft releases..."
          DRAFTS=$(curl -H "Authorization: token $GITHUB_TOKEN" \
                        -H "Accept: application/vnd.github.v3+json" \
                        https://api.github.com/repos/${{ github.repository }}/releases \
                        | jq '.[] | select(.draft==true) | .tag_name')

          echo "Draft Releases IDs: $DRAFTS"

          for DRAFT_TAG in $DRAFTS; do
            if [ -n "$DRAFT_TAG" ]; then
            echo "$DRAFT_TAG"
            echo "${{ vars.LATEST_BETA_VERSION }}"
              if [ $DRAFT_TAG == '"${{ vars.LATEST_BETA_VERSION }}"' ]; then
                echo "Release Candidate in progress. Do not merge until the candidate is released, or force-merge to include in release."
                exit 1
              fi
            fi
          done
      - name: Checkout Codebase
        uses: actions/checkout@v4
      - name: Configure Node version and registry
        uses: actions/setup-node@v4
        with:
          node-version: 24
      - name: Install Dependencies
        run: npm ci
      - name: Run Unit Tests
        run: npm test
