mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-10 10:06:47 +00:00
Difference to Appveyor: - Missing 386 build. Hit some issue because user-space memory there is around 2Gbs. Also seems generally extremely niche. - Not doing the archive step and NSIS installer and uploads (those are done on the builder).
140 lines
3.1 KiB
YAML
140 lines
3.1 KiB
YAML
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
|