build variations in CI to keep track of what works
This commit is contained in:
parent
406ec84577
commit
d4716c4bc6
71
.github/workflows/rust.yml
vendored
71
.github/workflows/rust.yml
vendored
|
@ -13,32 +13,77 @@ env:
|
|||
RUSTFLAGS: "-Dwarnings"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
build-gnu-apt:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update repos
|
||||
run: sudo apt-get update -qq
|
||||
- name: Install rust toolchain
|
||||
run: sudo apt-get install -qy cargo rust-clippy
|
||||
- name: install lzma
|
||||
run: sudo apt-get install -qy liblzma-dev
|
||||
- name: install gcc
|
||||
run: sudo apt-get install -qy gcc make
|
||||
- name: Install toolchain
|
||||
run: sudo apt-get install -qy cargo rust-clippy liblzma-dev gcc make pkgconf
|
||||
|
||||
- name: Run Clippy
|
||||
run: cargo clippy
|
||||
|
||||
- name: build
|
||||
run: cargo build
|
||||
|
||||
- name: generate bindings
|
||||
run: ./generate-binding.sh
|
||||
- name: check that generated files did not change
|
||||
run: output=$(git status --porcelain) && [ -z "$output" ]
|
||||
|
||||
- name: build
|
||||
run: cargo build
|
||||
- name: build example -- glibc release
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=release
|
||||
- name: build example -- glibc debug
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=debug
|
||||
|
||||
- name: build example
|
||||
run: cd example && make
|
||||
# this _should_ have been -stable, but there is a bug when running in the container ("Invalid cross-device link")
|
||||
build-musl-beta:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update repos
|
||||
run: sudo apt-get update -qq
|
||||
- name: Install toolchain
|
||||
run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup
|
||||
- name: install rust target
|
||||
run: rustup default beta && rustup target add aarch64-unknown-linux-musl && rustup component add rust-src && rustup update
|
||||
|
||||
- name: build example -- musl release
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=release MUSL=1 CARGO="rustup run beta cargo"
|
||||
- name: build example -- musl debug
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=debug MUSL=1 CARGO="rustup run beta cargo"
|
||||
|
||||
build-size-gnu-unstable:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update repos
|
||||
run: sudo apt-get update -qq
|
||||
- name: Install toolchain
|
||||
run: sudo apt-get install -qy liblzma-dev gcc make pkgconf rustup
|
||||
- name: install rust targets
|
||||
run: rustup toolchain install nightly -t aarch64-unknown-linux-gnu -c rust-src --no-self-update
|
||||
|
||||
- name: build example -- glibc size-optimized
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=size-optimized CARGO="rustup run nightly cargo" LTO=1
|
||||
|
||||
|
||||
build-size-musl-unstable:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update repos
|
||||
run: sudo apt-get update -qq
|
||||
- name: Install toolchain
|
||||
run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup
|
||||
- name: install rust targets
|
||||
run: rustup toolchain install nightly -t aarch64-unknown-linux-musl -c rust-src --no-self-update
|
||||
|
||||
- name: build example -- musl size-optimized
|
||||
run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=size-optimized MUSL=1 LTO=1 CARGO="rustup run nightly cargo"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
CARGO ?= cargo
|
||||
STRIP ?= strip
|
||||
|
||||
FEATURES :=
|
||||
FEATURES := ""
|
||||
|
||||
THIS_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
REPO_ROOT := $(realpath $(THIS_DIR)/..)
|
||||
|
@ -10,7 +10,7 @@ export SERVICEPOINT_HEADER_OUT := $(REPO_ROOT)/include
|
|||
override CFG_MUSL := $(if $(CFG_MUSL),$(CFG_MUSL),$(if $(MUSL),$(MUSL),0))
|
||||
override CFG_PROFILE := $(if $(CFG_PROFILE),$(CFG_PROFILE),$(if $(PROFILE),$(PROFILE),release))
|
||||
|
||||
CCFLAGS += -Wall -fwhole-program
|
||||
CCFLAGS += -Wall -fwhole-program -fPIE -pie
|
||||
|
||||
STRIPFLAGS := -s --strip-unneeded -R .comment -R .gnu.version -R .note -R .note.gnu.build-id -R .note.ABI-tag
|
||||
|
||||
|
@ -18,7 +18,7 @@ ifeq ($(CFG_MUSL), 1)
|
|||
TARGET ?= x86_64-unknown-linux-musl
|
||||
CC ?= musl-gcc
|
||||
CCFLAGS += -static -lservicepoint_binding_c
|
||||
RUSTFLAGS += --crate-type=staticlib
|
||||
RUSTFLAGS += --crate-type=staticlib -Ctarget-feature=-crt-static
|
||||
else
|
||||
TARGET ?= x86_64-unknown-linux-gnu
|
||||
CC ?= gcc
|
||||
|
|
Loading…
Reference in a new issue