Merge pull request #1 from mdeweerd/dependabot/github_actions/dorny/p… #82
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: CI | |
on: [push, pull_request] | |
jobs: | |
build-and-test: | |
# Normally runs in less than 50 seconds, but could stall because of test | |
timeout-minutes: 3 | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: sudo apt-get update -q && sudo apt install -y dash bash ksh zsh tcsh csh rc | |
- name: Build and Test (with sanitize) | |
env: | |
SKIP: python2 | |
run: | | |
SANITIZE="${SANITIZE} -fsanitize=address" | |
#SANITIZE="${SANITIZE} -fsanitize=thread" | |
SANITIZE="${SANITIZE} -fsanitize=leak" | |
SANITIZE="${SANITIZE} -fsanitize=undefined" | |
SANITIZE="${SANITIZE} -fsanitize=integer-divide-by-zero" | |
# SANITIZE="${SANITIZE} -fsanitize=vla-bound" | |
SANITIZE="${SANITIZE} -fsanitize=null" | |
SANITIZE="${SANITIZE} -fsanitize=signed-integer-overflow" | |
SANITIZE="${SANITIZE} -fsanitize=bounds" | |
#SANITIZE="${SANITIZE} -fsanitize=bounds-strict" | |
SANITIZE="${SANITIZE} -fsanitize=bool" | |
SANITIZE="${SANITIZE} -fsanitize=enum" | |
#SANITIZE="${SANITIZE} -fsanitize-recover" # will try to continue running the program | |
#SANITIZE_LINK="-static-libasan -static -lasan -static -lubsan -ldl -lm" | |
SANITIZE_LINK="-l:libasan.a -l:libubsan.a -ldl -lm" | |
SANITIZE="${SANITIZE} -fno-sanitize=alignment" | |
./autogen.sh | |
./configure | |
make clean | |
make CFLAGS="${SANITIZE} -g -O2" LDFLAGS="${SANITIZE_LINK}" | |
make CC=gcc CFLAGS="${SANITIZE} -g -O2" LDFLAGS="${SANITIZE_LINK}" test | |
- name: Build and Test (Normal) | |
env: | |
SKIP: python2 | |
run: | | |
./autogen.sh | |
./configure | |
make clean | |
make | |
make test | |
- name: Provide log as artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ ! cancelled() }} | |
with: | |
name: shc.failingtests | |
path: | | |
/tmp/shc.*.tst/* | |
retention-days: 2 |