Skip to content

User-friendly error message for missing main function (#509) #1279

User-friendly error message for missing main function (#509)

User-friendly error message for missing main function (#509) #1279

Workflow file for this run

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