1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
---
name: C/C++ CI
on:
schedule:
# Run monthly, at 4:00 on the 10t day of month.
- cron: "0 4 10 * *"
push:
branches:
- master
- develop
paths:
- configure.ac
- 'src/**'
- 'include/**'
- .github/workflows/**.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/cancel-workflow-action@0.12.1
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/checkout@v4.1.1
- 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
- name: Install Special Dependencies
run: |
if [ "$RUNNER_OS" == "Linux" ]
then
sudo apt-get install expect
else
brew install telnet
fi
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
branch: ${{ github.ref_name }}
module: ticcutils
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
branch: ${{ github.ref_name }}
module: libfolia
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
branch: ${{ github.ref_name }}
module: timbl
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
branch: ${{ github.ref_name }}
module: mbt
- uses: LanguageMachines/ticcactions/add-textcat@v1
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
module: uctodata
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
branch: ${{ github.ref_name }}
module: ucto
- uses: LanguageMachines/ticcactions/cpp-submodule-build@v1
with:
module: frogdata
- name: Static Code-check
if: ${{ env.action_status == '' }}
run: cppcheck ${{ env.cpc_opts }} .
- uses: LanguageMachines/ticcactions/cpp-safe-build@v1
- name: Notify IRC of build result
uses: LanguageMachines/ticcactions/irc-status@v1
with:
branch: ${{ github.ref_name }}
nickname: ${{ env.nick }}
step: build
status: ${{ env.action_status }}
details: ${{ env.action_details }}
- name: frogtests
id: frogtests
if: ${{ env.action_status == '' }}
run: |
git clone --depth=1 --single-branch https://github.com/LanguageMachines/frogtests.git
cd frogtests
frog_bin=/usr/local/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ./testaction.sh
TEST_STAT=$(cat status.tmp)
if [ $TEST_STAT != 0 ]
then
echo "action_status=frogtests" >> $GITHUB_ENV
fi
echo "action_details=$TEST_STAT errors" >> $GITHUB_ENV
continue-on-error: true
- name: log problems
if: >-
${{ env.action_status == '' &&
steps.frogtests.outcome != 'success' }}
run: |
cat frogtests/*.err
cat frogtests/*.diff
- 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 }}
|