Skip to content

Use Case - AT

Use Case - AT #87413

Workflow file for this run

name: Use Case - AT
on:
workflow_dispatch:
schedule:
- cron: '*/15 * * * *'
jobs:
test:
strategy:
fail-fast: false
matrix:
environment: [AT22, AT23, AT24]
environment: ${{ matrix.environment }}
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
failed-AT22: ${{ steps.set-failure.outputs.AT22 }}
failed-AT23: ${{ steps.set-failure.outputs.AT23 }}
failed-AT24: ${{ steps.set-failure.outputs.AT24 }}
env:
altinn_env: ${{ matrix.environment }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Set up K6
uses: grafana/setup-k6-action@db07bd9765aac508ef18982e52ab937fe633a065 # v1.2.1
- name: Create k6 secrets file
id: k6-secrets
env:
TOKEN_GENERATOR_USERNAME: ${{ secrets.TOKENGENERATOR_USERNAME }}
TOKEN_GENERATOR_USERPASSWORD: ${{ secrets.TOKENGENERATOR_USERPASSWORD }}
APIM_SUBSCRIPTION_KEY: ${{ secrets.AUTOMATEDTEST_APIM_SUBSCRIPTION_KEY }}
run: |
umask 077
SECRETS_FILE="${{ runner.temp }}/k6.secrets"
printf 'tokenGeneratorUserName=%s\n' "$TOKEN_GENERATOR_USERNAME" > "$SECRETS_FILE"
printf 'tokenGeneratorUserPwd=%s\n' "$TOKEN_GENERATOR_USERPASSWORD" >> "$SECRETS_FILE"
printf 'subscriptionKey=%s\n' "$APIM_SUBSCRIPTION_KEY" >> "$SECRETS_FILE"
echo "file=$SECRETS_FILE" >> "$GITHUB_OUTPUT"
- name: Run API v2 tests
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: components/api/test/k6/src/tests/orders-v2.js
flags: >-
--secret-source=file=${{ steps.k6-secrets.outputs.file }} -e ninRecipient=${{ vars.AUTOMATEDTEST_NINRECIPIENT }} -e emailRecipient=${{ vars.AUTOMATEDTEST_EMAILRECIPIENT }}
-e smsRecipient=${{ vars.AUTOMATEDTEST_SMSRECIPIENT }}
inspect-flags: -e altinn_env=${{ matrix.environment }} # Supplies the value for pre-run validation, when env vars / flags are not yet defined
- name: Run API v2 recipientOrganization tests
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: components/api/test/k6/src/tests/orders-org-no-v2.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e orgNoRecipient=${{ vars.AUTOMATEDTEST_ORG_NO_RECIPIENT }} -e resourceId=${{ vars.AUTOMATEDTEST_URN_RESOURCE_ID }}
inspect-flags: -e altinn_env=${{ matrix.environment }} # Supplies the value for pre-run validation, when env vars / flags are not yet defined
- name: Run email notification order use case tests
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: components/api/test/k6/src/tests/orders-email.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e emailRecipient=${{ vars.AUTOMATEDTEST_EMAILRECIPIENT }} -e ninRecipient=${{ vars.AUTOMATEDTEST_NINRECIPIENT }}
inspect-flags: -e altinn_env=${{ matrix.environment }} # Supplies the value for pre-run validation, when env vars / flags are not yet defined
- name: Run contact(s) lookup by organization number use case tests with generating an email notification
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: components/api/test/k6/src/tests/orders-org-no.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e orgNoRecipient=${{ vars.AUTOMATEDTEST_ORG_NO_RECIPIENT }} -e resourceId=${{ vars.AUTOMATEDTEST_RESOURCE_ID }}
inspect-flags: -e altinn_env=${{ matrix.environment }} # Supplies the value for pre-run validation, when env vars / flags are not yet defined
- name: Run sms notification order use case tests
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: components/api/test/k6/src/tests/orders-sms.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e smsRecipient=${{ vars.AUTOMATEDTEST_SMSRECIPIENT }}
inspect-flags: -e altinn_env=${{ matrix.environment }} # Supplies the value for pre-run validation, when env vars / flags are not yet defined
- name: Set failure output
id: set-failure
if: failure()
run: |
echo "${{ matrix.environment }}=true" >> "$GITHUB_OUTPUT"
slack-notify:
if: failure()
needs: test
permissions: {}
strategy:
matrix:
environment: [AT22, AT23, AT24]
include:
- environment: AT22
output: failed-AT22
- environment: AT23
output: failed-AT23
- environment: AT24
output: failed-AT24
runs-on: ubuntu-latest
steps:
- name: Send notification
if: needs.test.outputs[matrix.output] == 'true'
uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # v3.0.3
with:
webhook-type: incoming-webhook
webhook: ${{ secrets.SLACK_WEBHOOK_URL_TEST }}
payload: |
{
"text": ":warning: Notifications use case test failure in ${{ matrix.environment }} :warning: \n\n Workflow available here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}