name: Go on: [push, pull_request] env: GOTOOLCHAIN: local jobs: lint: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go-version: ["1.26", "1.27"] name: Lint ${{ matrix.go-version == '1.27' && '(latest)' || '(old)' }} steps: - uses: actions/checkout@v7 - name: Set up Go uses: actions/setup-go@v7 with: go-version: ${{ matrix.go-version }} cache: true - name: Install libolm run: sudo apt-get install libolm-dev - name: Install dependencies run: | go install golang.org/x/tools/cmd/goimports@latest go install honnef.co/go/tools/cmd/staticcheck@latest export PATH="$HOME/go/bin:$PATH" - name: Cache pre-commit uses: actions/cache@v6 with: path: ~/.cache/pre-commit key: pre-commit-go${{ matrix.go-version }}-${{ hashFiles('.pre-commit-config.yaml') }} - name: Run pre-commit run: pipx run pre-commit run --all-files --show-diff-on-failure --color=always test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go-version: ["1.26", "1.27"] name: Test ${{ matrix.go-version == '1.27' && '(latest)' || '(old)' }} steps: - uses: actions/checkout@v7 - name: Set up Go uses: actions/setup-go@v7 with: go-version: ${{ matrix.go-version }} cache: true #- name: Set up gotestfmt # uses: GoTestTools/gotestfmt-action@v2 # with: # token: ${{ secrets.GITHUB_TOKEN }} - name: Install libolm run: sudo apt-get install libolm-dev - name: Download libsignal run: | curl -L https://mau.dev/tulir/gomuks-build-docker/-/jobs/artifacts/master/raw/libsignal_ffi.a?job=libsignal%20linux%20amd64 -o libsignal_ffi.a - name: Run tests run: | set -euo pipefail export LIBRARY_PATH=. #go test -v -json ./... -cover | gotestfmt go test ./...