mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-04 14:08:39 +00:00
Each commit on a PR kicks off a CI run. Those CI jobs run to the finish regardless, even when new commits have been pushed which make them stale and useless. This change attempts to cancel any previously running job for the same PR.
145 lines
3.3 KiB
YAML
145 lines
3.3 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
# Free runner capacity by cancelling superseded PR runs.
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
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
|