Advent of code day4 #982
Workflow file for this run
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
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
shellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: shellcheck --color=always --shell=bash --exclude=SC2086,SC2059,SC2046,SC2235,SC2002,SC2206,SC2068,SC2207 *.sh activate | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
llvm-version: [11, 13] | |
# Testing all levels because there was a bug that only happened with -O1. (#224) | |
opt-level: ['-O0', '-O1', '-O2', '-O3'] | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt install -y llvm-${{ matrix.llvm-version }}-dev clang-${{ matrix.llvm-version }} make valgrind | |
- run: LLVM_CONFIG=llvm-config-${{ matrix.llvm-version }} make | |
- run: ./runtests.sh --verbose --jou-flags "${{ matrix.opt-level }}" | |
- run: ./runtests.sh --verbose --jou-flags "${{ matrix.opt-level }} --verbose" | |
# Valgrinding is slow, but many files affect valgrind resuls. | |
# We skip it when all changes are to .md files (docs, README etc) | |
- name: Figure out if we need to run tests with valgrind | |
id: check-need-valgrind | |
run: | | |
git fetch https://github.com/Akuli/jou main | |
# Find modified non-markdown files. If there are any, set doit=yes. | |
if git diff --name-only FETCH_HEAD HEAD | grep -vE '\.md$'; then | |
echo doit=yes >> $GITHUB_OUTPUT | |
else | |
echo doit=no >> $GITHUB_OUTPUT | |
fi | |
- if: ${{ steps.check-need-valgrind.outputs.doit == 'yes' }} | |
run: ./runtests.sh --verbose --valgrind --jou-flags "${{ matrix.opt-level }}" | |
# valgrind+verbose isn't meaningful: test script would ignore valgrind output | |
- run: make clean | |
- name: Check that "make clean" deleted all files not committed to Git | |
run: | | |
if [ "$(git status --porcelain --ignored)" != "" ]; then | |
git status --ignored | |
exit 1 | |
fi | |
compare-compilers: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt install -y llvm-13-dev clang-13 make valgrind | |
- run: LLVM_CONFIG=llvm-config-13 make | |
- run: ./compare_compilers.sh | |
editorconfig-checker: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# Hard-coded commit, because the latest changes aren't tagged. | |
- uses: editorconfig-checker/action-editorconfig-checker@d4fca16fc71adef10fbe101903b654449fa9570c | |
with: | |
version: 2.7.0 | |
- run: editorconfig-checker |