nix: define CGO_CPPFLAGS to prioritize nix LLVM headers #32
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
name: Nix | |
on: | |
pull_request: | |
push: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
nix-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Uninstall system LLVM packages exept LLVM 18 | |
run: | | |
sudo apt remove llvm-16 llvm-17 -y | |
- name: Trap Target.def header | |
run: | | |
sudo echo '#error("nope")' | sudo tee /usr/include/llvm-18/llvm/Config/Targets.def | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Pull musl | |
run: | | |
git submodule update --init lib/musl | |
- name: Restore LLVM source cache | |
uses: actions/cache/restore@v4 | |
id: cache-llvm-source | |
with: | |
key: llvm-source-18-linux-nix-v1 | |
path: | | |
llvm-project/compiler-rt | |
- name: Download LLVM source | |
if: steps.cache-llvm-source.outputs.cache-hit != 'true' | |
run: make llvm-source | |
- name: Save LLVM source cache | |
uses: actions/cache/save@v4 | |
if: steps.cache-llvm-source.outputs.cache-hit != 'true' | |
with: | |
key: ${{ steps.cache-llvm-source.outputs.cache-primary-key }} | |
path: | | |
llvm-project/compiler-rt | |
- uses: cachix/install-nix-action@v22 | |
- name: Test | |
run: | | |
nix develop --ignore-environment --keep HOME --command bash -c "go install && ~/go/bin/tinygo version && ~/go/bin/tinygo build -o test ./testdata/cgo" |