check generics to avoid issue with different types of args #343
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: [push, pull_request] | |
name: BuildAndTest | |
jobs: | |
ubuntu: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- { go-version: 1.22.x, dwarf-version: 3} | |
- { go-version: 1.22.x, dwarf-version: 4} | |
- { go-version: 1.22.x, dwarf-version: 5} | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: prerequisites # ubuntu speicific | |
run: sudo apt-get install check | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Test | |
env: | |
GO111MODULE: on | |
run: go test -cover ./... | |
- name: Build | |
run: go build | |
- name: Examples test | |
run: make test all DWARF_VER_FORCE=${{matrix.dwarf-version}} | |
ubuntu_big_endian: | |
# pretty slow since it's running on qemu. we may disable it periodically | |
# taken from https://github.com/marketplace/actions/run-on-architecture | |
# s390x is big endian with Ubuntu_latest which | |
# also has go-lang for linux: https://go.dev/dl/ | |
# https://go.dev/dl/go1.23.0.linux-s390x.tar.gz | |
# GO_TELEMETRY_CHILD=off | |
# The host should always be Linux. | |
runs-on: ubuntu-22.04 | |
name: ubuntu (s390x - big endian) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Go | |
run: curl -fsSL -o go.tar.gz https://go.dev/dl/go1.22.0.linux-s390x.tar.gz | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Run commands | |
id: runcmd | |
with: | |
arch: s390x | |
distro: ubuntu_latest | |
# Not required, but speeds up builds by storing container images in | |
# a GitHub package registry. | |
# githubToken: ${{ github.token }} | |
# Set an output parameter `uname` for use in subsequent steps | |
run: | | |
set -x | |
uname -a | |
apt update && apt-get install -y ca-certificates pkg-config make gcc g++ check libffi-dev | |
tar -C /usr/local -xzf go.tar.gz && rm go.tar.gz | |
export PATH=$PATH:/usr/local/go/bin | |
go version | |
export GO111MODULE=on | |
go test -cover ./... | |
go build | |
make test all | |
macos: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
go-version: [1.22.x] # , 1.21.x, 1.20.x] | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: prerequisites # macos speicific | |
run: brew install pkg-config check | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Test | |
env: | |
GO111MODULE: on | |
run: go test -cover ./... | |
- name: Build | |
run: go build | |
- name: Examples test | |
run: make test all | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
include: | |
- { go-version: 1.22.x, sys: mingw64, env: x86_64 } | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: prerequisites # Windows speicific | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: base-devel git pkg-config mingw-w64-${{matrix.env}}-check mingw-w64-${{matrix.env}}-toolchain | |
path-type: inherit # to be able to find go in PATH | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Test | |
env: | |
GO111MODULE: on | |
run: go test -cover ./... | |
- name: Build | |
run: go build | |
- name: Examples test | |
run: make test all |