User-friendly error message for missing main function (#509) #1279
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,SC2013 *.sh activate | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
llvm-version: [11, 13, 14] | |
# 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 update | |
- 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 results. | |
# 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 | |
doctest: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt update | |
- run: sudo apt install -y llvm-{11,13,14}-dev clang-{11,13,14} make | |
- run: LLVM_CONFIG=llvm-config-11 ./doctest.sh | |
- run: make clean | |
- run: LLVM_CONFIG=llvm-config-13 ./doctest.sh | |
- run: make clean | |
- run: LLVM_CONFIG=llvm-config-14 ./doctest.sh | |
compare-compilers: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt update | |
- run: sudo apt install -y llvm-{11,13,14}-dev clang-{11,13,14} make | |
- run: LLVM_CONFIG=llvm-config-11 ./compare_compilers.sh | |
- run: make clean | |
- run: LLVM_CONFIG=llvm-config-13 ./compare_compilers.sh | |
- run: make clean | |
- run: LLVM_CONFIG=llvm-config-14 ./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 |