diff --git a/.github/workflows/functional-test.yaml b/.github/workflows/functional-test.yaml index b581890056..3e1bee7bd3 100644 --- a/.github/workflows/functional-test.yaml +++ b/.github/workflows/functional-test.yaml @@ -538,26 +538,30 @@ jobs: - name: Publish Terraform test recipes run: | make publish-test-terraform-recipes - - name: Run functional tests - run: | - # Ensure rad cli is in path before running tests. - export PATH=$GITHUB_WORKSPACE/bin:$PATH - cd $GITHUB_WORKSPACE + - uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + shell: bash + command: | + # Ensure rad cli is in path before running tests. + export PATH=$GITHUB_WORKSPACE/bin:$PATH + cd $GITHUB_WORKSPACE - which rad || { echo "cannot find rad"; exit 1; } + which rad || { echo "cannot find rad"; exit 1; } - # Populate the following test environment variables from JSON secret. - # AZURE_MONGODB_RESOURCE_ID - # AZURE_COSMOS_MONGODB_ACCOUNT_ID - # AZURE_TABLESTORAGE_RESOURCE_ID - # AZURE_SERVICEBUS_RESOURCE_ID - # AZURE_REDIS_RESOURCE_ID - # AZURE_MSSQL_RESOURCE_ID - # AZURE_MSSQL_USERNAME - # AZURE_MSSQL_PASSWORD - eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" + # Populate the following test environment variables from JSON secret. + # AZURE_MONGODB_RESOURCE_ID + # AZURE_COSMOS_MONGODB_ACCOUNT_ID + # AZURE_TABLESTORAGE_RESOURCE_ID + # AZURE_SERVICEBUS_RESOURCE_ID + # AZURE_REDIS_RESOURCE_ID + # AZURE_MSSQL_RESOURCE_ID + # AZURE_MSSQL_USERNAME + # AZURE_MSSQL_PASSWORD + eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" - make test-functional-${{ matrix.name }} + make test-functional-${{ matrix.name }} env: DOCKER_REGISTRY: ${{ env.CONTAINER_REGISTRY }} TEST_TIMEOUT: ${{ env.FUNCTIONALTEST_TIMEOUT }} diff --git a/.github/workflows/retry-functional-test.yaml b/.github/workflows/retry-functional-test.yaml index 551bb3fd10..15cc708533 100644 --- a/.github/workflows/retry-functional-test.yaml +++ b/.github/workflows/retry-functional-test.yaml @@ -22,6 +22,9 @@ permissions: packages: write # Required for uploading the package on: + pull_request: + branches: + - main schedule: # Run every 2 hours - cron: "0 */2 * * *" @@ -95,10 +98,12 @@ jobs: with: app_id: ${{ env.FUNCTIONAL_TEST_APP_ID }} private_key: ${{ secrets.FUNCTIONAL_TEST_APP_PRIVATE_KEY }} - - name: Set up checkout target + - name: Set up checkout target (pull_request) + if: github.event_name == 'pull_request' run: | - echo "CHECKOUT_REPO=youngbupark/radius" >> $GITHUB_ENV - echo "CHECKOUT_REF=refs/heads/youngp/enable-retry-test" >> $GITHUB_ENV + echo "CHECKOUT_REPO=${{ github.repository }}" >> $GITHUB_ENV + echo "CHECKOUT_REF=${{ github.ref }}" >> $GITHUB_ENV + echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> $GITHUB_ENV - name: Check out code uses: actions/checkout@v4 with: @@ -476,25 +481,30 @@ jobs: run: | make publish-test-terraform-recipes - name: Run functional tests - run: | - # Ensure rad cli is in path before running tests. - export PATH=$GITHUB_WORKSPACE/bin:$PATH - cd $GITHUB_WORKSPACE + uses: nick-fields/retry@v3 + with: + timeout_minutes: 30 + max_attempts: 3 + shell: bash + command: | + # Ensure rad cli is in path before running tests. + export PATH=$GITHUB_WORKSPACE/bin:$PATH + cd $GITHUB_WORKSPACE - which rad || { echo "cannot find rad"; exit 1; } + which rad || { echo "cannot find rad"; exit 1; } - # Populate the following test environment variables from JSON secret. - # AZURE_MONGODB_RESOURCE_ID - # AZURE_COSMOS_MONGODB_ACCOUNT_ID - # AZURE_TABLESTORAGE_RESOURCE_ID - # AZURE_SERVICEBUS_RESOURCE_ID - # AZURE_REDIS_RESOURCE_ID - # AZURE_MSSQL_RESOURCE_ID - # AZURE_MSSQL_USERNAME - # AZURE_MSSQL_PASSWORD - eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" + # Populate the following test environment variables from JSON secret. + # AZURE_MONGODB_RESOURCE_ID + # AZURE_COSMOS_MONGODB_ACCOUNT_ID + # AZURE_TABLESTORAGE_RESOURCE_ID + # AZURE_SERVICEBUS_RESOURCE_ID + # AZURE_REDIS_RESOURCE_ID + # AZURE_MSSQL_RESOURCE_ID + # AZURE_MSSQL_USERNAME + # AZURE_MSSQL_PASSWORD + eval "export $(echo "${{ secrets.FUNCTEST_PREPROVISIONED_RESOURCE_JSON }}" | jq -r 'to_entries | map("\(.key)=\(.value)") | @sh')" - make test-functional-${{ matrix.name }} + make test-functional-${{ matrix.name }} env: DOCKER_REGISTRY: ${{ env.CONTAINER_REGISTRY }} TEST_TIMEOUT: ${{ env.FUNCTIONALTEST_TIMEOUT }}