AJ-1234: Add WsmPactTest
#729
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: Publish contract tests | |
on: | |
pull_request: | |
branches: | |
- main | |
paths-ignore: [ '**.md' ] | |
push: | |
branches: | |
- main | |
paths-ignore: [ '**.md' ] | |
jobs: | |
init-github-context: | |
runs-on: ubuntu-latest | |
outputs: | |
sha-short: ${{ steps.extract-branch.outputs.sha-short }} | |
repo-branch: ${{ steps.extract-branch.outputs.repo-branch }} | |
repo-version: ${{ steps.extract-branch.outputs.repo-version }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Extract branch | |
id: extract-branch | |
run: | | |
GITHUB_EVENT_NAME=${{ github.event_name }} | |
if [[ "$GITHUB_EVENT_NAME" == "push" ]]; then | |
GITHUB_REF=${{ github.ref }} | |
GITHUB_SHA=${{ github.sha }} | |
elif [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then | |
GITHUB_REF=refs/heads/${{ github.head_ref }} | |
GITHUB_SHA=${{ github.event.pull_request.head.sha }} | |
elif [[ "$GITHUB_EVENT_NAME" == "merge_group" ]]; then | |
GITHUB_REF=refs/heads/${{ github.head_ref }} | |
else | |
echo "Failed to extract branch information" | |
exit 1 | |
fi | |
echo "repo-branch=${GITHUB_REF/refs\/heads\//""}" >> $GITHUB_OUTPUT | |
echo "repo-version=${GITHUB_SHA}" >> $GITHUB_OUTPUT | |
- name: Echo repo and branch information | |
run: | | |
echo "repo-owner=${{ github.repository_owner }}" | |
echo "repo-name=${{ github.event.repository.name }}" | |
echo "repo-branch=${{ steps.extract-branch.outputs.repo-branch }}" | |
echo "repo-version=${{ steps.extract-branch.outputs.repo-version }}" | |
run-consumer-contract-tests: | |
runs-on: ubuntu-latest | |
needs: [ init-github-context ] | |
outputs: | |
pact-b64: ${{ steps.encode-pact.outputs.pact-b64 }} | |
steps: | |
- name: Checkout current code | |
uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Run consumer tests | |
run: ./gradlew pactTests | |
- name: Output consumer contract as non-breaking base64 string | |
id: encode-pact | |
run: | | |
NON_BREAKING_B64=$(cat service/build/pacts/wds-sam.json | base64 -w 0) | |
echo "pact-b64=${NON_BREAKING_B64}" >> $GITHUB_OUTPUT | |
publish-pact-job: | |
runs-on: ubuntu-latest | |
needs: [ init-github-context, run-consumer-contract-tests ] | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
steps: | |
- name: Dispatch to terra-github-workflows | |
uses: broadinstitute/workflow-dispatch@v3 | |
with: | |
workflow: .github/workflows/publish-contracts.yaml | |
repo: broadinstitute/terra-github-workflows | |
ref: refs/heads/main | |
token: ${{ secrets.BROADBOT_TOKEN }} # github token for access to kick off a job in the private repo | |
inputs: '{ "pact-b64": "${{ needs.run-consumer-contract-tests.outputs.pact-b64 }}", "repo-owner": "${{ github.repository_owner }}", "repo-name": "${{ github.event.repository.name }}", "repo-branch": "${{ needs.init-github-context.outputs.repo-branch }}" }' |