mirror of
https://github.com/rui314/mold.git
synced 2024-10-04 08:37:28 +03:00
65 lines
2.9 KiB
YAML
65 lines
2.9 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
env:
|
|
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
|
|
jobs:
|
|
build-clang:
|
|
strategy:
|
|
matrix:
|
|
flags:
|
|
- 'LDFLAGS=-fuse-ld=mold'
|
|
- 'CXXFLAGS="-fsanitize=address -fsanitize=undefined -g -Og" LDFLAGS="-fuse-ld=mold -fsanitize=address -fsanitize=undefined" USE_MIMALLOC=0'
|
|
- 'CXXFLAGS="-fsanitize=thread -g -Og" LDFLAGS="-fuse-ld=mold -fsanitize=thread" USE_MIMALLOC=0'
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: rui314/setup-mold@staging
|
|
with:
|
|
make-default: false
|
|
- name: apt-get
|
|
run: sudo apt-get update && sudo apt-get install git build-essential libstdc++-10-dev cmake clang libssl-dev zlib1g-dev libtbb-dev git bsdmainutils dwarfdump pkg-config
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
- name: make test
|
|
run: PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" make -j$(nproc) CC=clang CXX=clang++ ${{ matrix.flags }} test
|
|
|
|
build-gcc:
|
|
runs-on: ubuntu-20.04
|
|
container: gcc:11.1.0
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: apt-get
|
|
run: |
|
|
dpkg --add-architecture i386 && apt-get update && apt-get install -y sudo libssl-dev zlib1g-dev cmake clang bsdmainutils dwarfdump qemu-user gcc-10-i686-linux-gnu gcc-10-aarch64-linux-gnu gcc-10-riscv64-linux-gnu gcc-10-arm-linux-gnueabihf g++-10-i686-linux-gnu g++-10-aarch64-linux-gnu g++-10-riscv64-linux-gnu g++-10-arm-linux-gnueabihf
|
|
ln -sf /usr/bin/i686-linux-gnu-gcc-10 /usr/bin/i686-linux-gnu-gcc
|
|
ln -sf /usr/bin/i686-linux-gnu-g++-10 /usr/bin/i686-linux-gnu-g++
|
|
ln -sf /usr/bin/aarch64-linux-gnu-gcc-10 /usr/bin/aarch64-linux-gnu-gcc
|
|
ln -sf /usr/bin/aarch64-linux-gnu-g++-10 /usr/bin/aarch64-linux-gnu-g++
|
|
ln -sf /usr/bin/arm-linux-gnueabihf-gcc-10 /usr/bin/arm-linux-gnueabihf-gcc
|
|
ln -sf /usr/bin/arm-linux-gnueabihf-g++-10 /usr/bin/arm-linux-gnueabihf-g++
|
|
ln -sf /usr/bin/riscv64-linux-gnu-gcc-10 /usr/bin/riscv64-linux-gnu-gcc
|
|
ln -sf /usr/bin/riscv64-linux-gnu-g++-10 /usr/bin/riscv64-linux-gnu-g++
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
- name: make test-all
|
|
run: PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" make -j$(nproc) CC=gcc CXX=g++
|
|
|
|
build-macos:
|
|
strategy:
|
|
matrix:
|
|
flags:
|
|
- ''
|
|
- 'CXXFLAGS="-fsanitize=address -fsanitize=undefined -g -Og" LDFLAGS="-fsanitize=address -fsanitize=undefined" USE_MIMALLOC=0'
|
|
- 'CXXFLAGS="-fsanitize=thread -g -Og" LDFLAGS="-fsanitize=thread" USE_MIMALLOC=0'
|
|
runs-on: macos-11
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
- name: make test
|
|
run: PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" make -j$(sysctl -n hw.logicalcpu) ${{ matrix.flags }} test
|