on: push: branches: - master pull_request: branches: - master workflow_dispatch: jobs: lint: name: Lint runs-on: [self-hosted-ghr, size-s-x64] steps: - uses: actions/checkout@v4 with: submodules: false # Cache build tools to avoid downloading them each time - uses: actions/cache@v4 with: path: build/cache key: ${{ runner.os }}-build-tools-cache-${{ hashFiles('build/checksums.txt') }} - name: Set up Go uses: actions/setup-go@v5 with: go-version: 1.25 cache: false - name: Run linters run: | go run build/ci.go lint go run build/ci.go check_generate go run build/ci.go check_baddeps keeper: name: Keeper Builds needs: test runs-on: [self-hosted-ghr, size-l-x64] steps: - uses: actions/checkout@v4 with: submodules: true - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' cache: false - name: Build run: go run build/ci.go keeper test-32bit: name: "32bit tests" needs: test runs-on: [self-hosted-ghr, size-l-x64] steps: - uses: actions/checkout@v4 with: submodules: false - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' cache: false - name: Install cross toolchain run: | sudo apt-get update sudo apt-get -yq --no-install-suggests --no-install-recommends install gcc-multilib - name: Build run: go run build/ci.go test -arch 386 -short -p 8 test: name: Test needs: lint runs-on: [self-hosted-ghr, size-l-x64] strategy: matrix: go: - '1.25' - '1.24' steps: - uses: actions/checkout@v4 with: submodules: true - name: Set up Go uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} cache: false - name: Run tests run: go run build/ci.go test -p 8