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 windows: name: Windows ${{ matrix.arch }} needs: lint runs-on: [self-hosted, windows, x64] strategy: fail-fast: false matrix: include: - arch: amd64 mingw: 'C:\msys64\mingw64' test: true - arch: '386' mingw: 'C:\msys64\mingw32' test: false env: GETH_MINGW: ${{ matrix.mingw }} GETH_CC: ${{ matrix.mingw }}\bin\gcc.exe 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 shell: cmd run: | set PATH=%GETH_MINGW%\bin;%PATH% go run build/ci.go install -arch ${{ matrix.arch }} -cc %GETH_CC% - name: Run tests if: matrix.test shell: cmd run: | set PATH=%GETH_MINGW%\bin;%PATH% go run build/ci.go test -arch ${{ matrix.arch }} -cc %GETH_CC% -short -p 8