[Internal] Add test instructions for external contributors #138
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration Tests | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
merge_group: | |
jobs: | |
check-token: | |
name: Check secrets access | |
runs-on: ubuntu-latest | |
outputs: | |
has_token: ${{ steps.set-token-status.outputs.has_token }} | |
steps: | |
- name: Check if GITHUB_TOKEN is set | |
id: set-token-status | |
run: | | |
if [ -z "${{ secrets.GITHUB_TOKEN }}" ]; then | |
echo "GITHUB_TOKEN is empty. User has no access to tokens." | |
echo "::set-output name=has_token::true" | |
else | |
echo "GITHUB_TOKEN is set. User has no access to tokens." | |
echo "::set-output name=has_token::false" | |
fi | |
trigger-tests: | |
name: Trigger Tests | |
runs-on: ubuntu-latest | |
needs: check-token | |
if: github.event_name == 'pull_request' && needs.check-token.outputs.has_token == 'true' | |
environment: "test-trigger-is" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Generate GitHub App Token | |
id: generate-token | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: ${{ secrets.DECO_WORKFLOW_TRIGGER_APP_ID }} | |
private-key: ${{ secrets.DECO_WORKFLOW_TRIGGER_PRIVATE_KEY }} | |
owner: ${{ secrets.ORG_NAME }} | |
repositories: ${{secrets.REPO_NAME}} | |
- name: Trigger Workflow in Another Repo | |
env: | |
GH_TOKEN: ${{ steps.generate-token.outputs.token }} | |
run: | | |
gh workflow run sdk-go-isolated-pr.yml -R ${{ secrets.ORG_NAME }}/${{secrets.REPO_NAME}} \ | |
--ref main \ | |
-f pull_request_number=${{ github.event.pull_request.number }} \ | |
-f commit_sha=${{ github.event.pull_request.head.sha }} | |
# The hash for the merge queue may not be the same as the hash for the PR. | |
# Auto approve the check for the merge queue to avoid running integration tests twice. | |
auto-approve: | |
if: github.event_name == 'merge_group' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Mark Check | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
shell: bash | |
run: | | |
gh api -X POST -H "Accept: application/vnd.github+json" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
/repos/${{ github.repository }}/statuses/${{ github.sha }} \ | |
-f 'state=success' \ | |
-f 'context=Integration Tests Check' |