Skip to content

C/C++ CI

C/C++ CI #218

Workflow file for this run

---
name: C/C++ CI
on:
schedule:
- cron: "0 5 4 * 5" # run test once a month
push:
branches:
- master
- develop
paths:
- configure.ac
- 'src/**'
- 'include/**'
- .github/workflows/foliatest.yml
pull_request:
branches: [master]
jobs:
notification:
runs-on: ubuntu-latest
name: Notify start to gitlama
steps:
- name: IRC notification
uses: LanguageMachines/ticcactions/irc-init@v1
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
build:
needs: notification
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
compiler: [g++-12, clang++]
steps:
- uses: actions/[email protected]
- uses: LanguageMachines/ticcactions/cpp-build-env@v1
- uses: LanguageMachines/ticcactions/cpp-dependencies@v1
- uses: LanguageMachines/ticcactions/setup-cppcheck@v1
- uses: LanguageMachines/ticcactions/irc-nick@v1
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
module: ticcutils
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
module: libfolia
- name: Static Code-check
if: ${{ env.action_status == '' }}
run: cppcheck ${{ env.cpc_opts }} .
- name: install FoliaPY
if: ${{ env.action_status == '' }}
run: |
git clone https://github.com/proycon/foliapy;
cd foliapy;
# get folia-repo with examples
git submodule init && git submodule update;
cd ..
- uses: LanguageMachines/ticcactions/cpp-safe-build@v1
env:
FOLIAPATH: foliapy/folia-repo
- name: Notify IRC of build results
uses: LanguageMachines/ticcactions/irc-status@v1
with:
branch: ${{ github.ref_name }}
nickname: ${{ env.nick }}
status: ${{ env.action_status }}
details: ${{ env.action_details }}
continue-on-error: true
- name: run foliatests
id: foliatests
if: ${{ env.action_status == '' }}
env:
FOLIAPATH: foliapy/folia-repo
EXPECT: 0
LD_LIBRARY_PATH: $LD_LIBRARY_PATH:/usr/local/lib
run: |
./src/testaction.sh;
TEST_STAT=$(cat status.tmp)
echo "action_details=$TEST_STAT errors" >> $GITHUB_ENV
continue-on-error: true
- name: get test status
uses: LanguageMachines/ticcactions/get-status@v1
with:
the-step: foliatests
outcome: ${{ steps.foliatests.outcome }}
- name: Notify IRC of end result
uses: LanguageMachines/ticcactions/irc-status@v1
with:
branch: ${{ github.ref_name }}
nickname: ${{ env.nick }}
step: testing
status: ${{ env.action_status }}
details: ${{ env.action_details }}