@@ -153,3 +153,59 @@ jobs:
153153 sonar_organisation_key : " ${{ vars.SONAR_ORGANISATION_KEY }}"
154154 sonar_project_key : " ${{ vars.SONAR_PROJECT_KEY }}"
155155 sonar_token : " ${{ secrets.SONAR_TOKEN }}"
156+
157+ consumer-contracts :
158+ name : Consumer Contract Tests
159+ runs-on : ubuntu-latest
160+ environment : dev
161+ steps :
162+ - name : Checkout repository
163+ uses : actions/checkout@v4
164+
165+ - name : Install dependencies
166+ run : npm ci
167+
168+ - name : Configure AWS credentials
169+ uses : aws-actions/configure-aws-credentials@v4
170+ with :
171+ role-to-assume : arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ASSUME_ROLE_NAME }}
172+ role-session-name : templates-ci-contract-tests
173+ aws-region : ${{ env.AWS_REGION }}
174+
175+ - name : Run consumer contract tests
176+ run : npm run test:contracts:consumers
177+
178+ - name : Upload consumer Pact files
179+ run : |
180+ export PACT_BUCKET="nhs-notify-${{ secrets.AWS_ACCOUNT_ID }}-${{ env.AWS_REGION }}-main-acct-artefacts"
181+ npm run test:contracts:upload:consumer
182+
183+ - name : Upload Pact contracts as artifacts
184+ uses : actions/upload-artifact@v4
185+ with :
186+ name : consumer-pacts
187+ path : tests/contracts/tests/*/consumer/pacts/*.json
188+ if-no-files-found : warn
189+
190+ provider-contracts :
191+ name : Provider Contract Tests
192+ runs-on : ubuntu-latest
193+ environment : dev
194+ steps :
195+ - name : Checkout repository
196+ uses : actions/checkout@v4
197+
198+ - name : Install dependencies
199+ run : npm ci
200+
201+ - name : Configure AWS credentials
202+ uses : aws-actions/configure-aws-credentials@v4
203+ with :
204+ role-to-assume : arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ASSUME_ROLE_NAME }}
205+ role-session-name : templates-ci-contract-tests
206+ aws-region : ${{ env.AWS_REGION }}
207+
208+ - name : Download consumer generated Pact files and run provider contract tests
209+ run : |
210+ export PACT_BUCKET="nhs-notify-${{ secrets.AWS_ACCOUNT_ID }}-${{ env.AWS_REGION }}-main-acct-artefacts"
211+ npm run test:contracts:provider:ci
0 commit comments