name: Go on: [push, pull_request] env: GOTOOLCHAIN: local jobs: lint: runs-on: ubuntu-latest name: Lint (latest) steps: - uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v6 with: go-version: "1.26" cache: true - name: Install libolm run: sudo apt-get install libolm-dev libolm3 - name: Install goimports 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: Run pre-commit uses: pre-commit/action@v3.0.1 build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go-version: ["1.25", "1.26"] name: Build (${{ matrix.go-version == '1.26' && 'latest' || 'old' }}, libolm) steps: - uses: actions/checkout@v6 - name: Set up Go ${{ matrix.go-version }} uses: actions/setup-go@v6 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 libolm3 - name: Build run: go build -v ./... - name: Test run: go test -json -v ./... 2>&1 | gotestfmt - name: Test (jsonv2) env: GOEXPERIMENT: jsonv2 run: go test -json -v ./... 2>&1 | gotestfmt build-goolm: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go-version: ["1.25", "1.26"] name: Build (${{ matrix.go-version == '1.26' && 'latest' || 'old' }}, goolm) steps: - uses: actions/checkout@v6 - name: Set up Go ${{ matrix.go-version }} uses: actions/setup-go@v6 with: go-version: ${{ matrix.go-version }} cache: true - name: Build run: | rm -rf crypto/libolm go build -tags=goolm -v ./...