42Atomys/webhooked

View on GitHub
.github/workflows/k6.yaml

Summary

Maintainability
Test Coverage
name: K6 🛠️
on: 
  pull_request:
    types:
    - ready_for_review
  push:
    branches:
    - main
  workflow_dispatch:
permissions:
  contents: read
jobs:
  k6-load-script:
    name: "K6 Load test"
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        goVersion: [ '1.18', '1.19', '1.20' ]
    steps:
    - name: Checkout project
      uses: actions/checkout@v4
    - name: Setup go
      uses: actions/setup-go@v5
      with:
        go-version: ${{ matrix.goVersion }}
        check-latest: true
    - name: Install k6
      run: |
        curl https://github.com/grafana/k6/releases/download/v0.49.0/k6-v0.49.0-linux-amd64.tar.gz -L | tar xvz --strip-components 1
    - name: Start application and run K6
      continue-on-error: true
      run: |
        go run main.go serve --config tests/webhooks.tests.yaml >/dev/null 2>&1 &
        until $(curl --output /dev/null --silent --head --fail http://localhost:8080/metrics); do
          printf '.'
          sleep 1
        done
        ./k6 run tests/loadtesting/k6-load-script.js