Skip to content

Use Case - AT

Use Case - AT #102381

Workflow file for this run

name: Use Case - AT
on:
workflow_dispatch:
schedule:
- cron: '*/15 * * * *'
jobs:
use-case-test:
strategy:
fail-fast: false
matrix:
environment: [AT22, AT23]
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 }}
env: # Shared environment vars for k6 test scripts
altinn_env: ${{ matrix.environment }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- 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 }}
PID: ${{ secrets.PERSON_NUMBER }}
TESTIDPPWD: ${{ secrets.TESTIDPPWD }}
WEBHOOK_ENDPOINT: ${{ secrets.WEBHOOK_ENDPOINT }}
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 'pid=%s\n' "$PID" >> "$SECRETS_FILE"
printf 'testidppwd=%s\n' "$TESTIDPPWD" >> "$SECRETS_FILE"
printf 'webhookEndpoint=%s\n' "$WEBHOOK_ENDPOINT" >> "$SECRETS_FILE"
echo "file=$SECRETS_FILE" >> "$GITHUB_OUTPUT"
- name: Run app-events use case tests
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: test/k6/src/tests/app-events.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e app=apps-test
- name: Run events use case tests (POST)
if: always()
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: test/k6/src/tests/events/post.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }}
- name: Run events use case tests (GET)
if: always()
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: test/k6/src/tests/events/get.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }}
- name: Run subscription use case tests
if: always()
uses: grafana/run-k6-action@de51a7390bdf0ac85a3bef493691bd71d4c7c158 # v1.4.0
with:
path: test/k6/src/tests/subscriptions.js
flags: --secret-source=file=${{ steps.k6-secrets.outputs.file }} -e app=apps-test
- name: Set failure output
id: set-failure
if: failure()
run: |
env_lower=$(echo "${{ matrix.environment }}" | tr '[:upper:]' '[:lower:]')
echo "${env_lower}=true" >> $GITHUB_OUTPUT
slack-notify:
if: failure()
needs: use-case-test
permissions: {}
strategy:
matrix:
environment: [AT22, AT23]
include:
- environment: AT22
output: failed-at22
- environment: AT23
output: failed-at23
runs-on: ubuntu-latest
steps:
- name: Send notification
if: needs.use-case-test.outputs[matrix.output] == 'true'
uses: slackapi/slack-github-action@dcb1066f776dd043e64d0e8ba94ca15cc7e1875d # v4.0.0
with:
webhook-type: incoming-webhook
webhook: ${{ secrets.SLACK_WEBHOOK_URL_TEST }}
payload: |
{
"text": ":warning: Events use case test failure in ${{ matrix.environment }} :warning: \n\n Workflow available here: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}