Skip to content

Created example with alternative approach to parse args #341

Created example with alternative approach to parse args

Created example with alternative approach to parse args #341

Workflow file for this run

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