name: Autobahn

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
  schedule:
  - cron: '0 10 * * 1' # run "At 10:00 on Monday"

concurrency:
  group: autobahn-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test:
    strategy:
      matrix:
        os: [ ubuntu-latest ]
        go: [ 'stable', 'oldstable' ]

    runs-on: ${{ matrix.os }}
    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Setup Go
      uses: actions/setup-go@v5
      with:
        go-version: ${{ matrix.go }}
        check-latest: true

    - name: Autobahn
      env:
        CRYPTOGRAPHY_ALLOW_OPENSSL_102: yes
      run: |
        make test autobahn

    - name: Autobahn Report Artifact
      uses: actions/upload-artifact@v4
      with:
        name: autobahn report ${{ matrix.go }} ${{ matrix.os }}
        path: autobahn/report
        retention-days: 7
