blob: fb2832172eb963fe10e6300668b0f6a599680c65 [file] [log] [blame]
Bram Moolenaard57a6bd2021-08-07 12:32:20 +02001name: Coverity
2on:
3 schedule:
4 - cron: '42 0 * * *' # Run once per day, to avoid Coverity's submission limits
5 workflow_dispatch:
6
Alex311df6b2022-09-26 15:52:46 +01007permissions:
8 contents: read # to fetch code (actions/checkout)
9
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020010jobs:
11 scan:
Philip H.ded2b412025-04-18 18:42:24 +020012 runs-on: ubuntu-24.04
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020013
14 env:
15 CC: gcc
16 DEBIAN_FRONTEND: noninteractive
K.Takataad85af52022-11-25 00:57:05 +000017 TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020018
19 steps:
Philip Hbfaa24f2022-06-01 21:26:34 +010020 - name: Checkout repository from github
K.Takataad85af52022-11-25 00:57:05 +000021 if: env.TOKEN
dependabot[bot]213c3232023-09-11 19:43:33 +020022 uses: actions/checkout@v4
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020023
24 - name: Download Coverity
K.Takataad85af52022-11-25 00:57:05 +000025 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020026 run: |
K.Takataad85af52022-11-25 00:57:05 +000027 wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020028 mkdir cov-scan
29 tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020030
31 - name: Install packages
K.Takataad85af52022-11-25 00:57:05 +000032 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020033 run: |
Philip H9be736f2023-04-21 19:51:22 +010034 sudo apt-get update && sudo apt-get install -y \
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020035 autoconf \
36 gettext \
37 libcanberra-dev \
38 libperl-dev \
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020039 python3-dev \
Philip H9be736f2023-04-21 19:51:22 +010040 liblua5.4-dev \
41 lua5.4 \
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020042 ruby-dev \
43 tcl-dev \
44 libgtk2.0-dev \
45 desktop-file-utils \
46 libtool-bin \
47 libsodium-dev
48
49 - name: Set up environment
K.Takataad85af52022-11-25 00:57:05 +000050 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020051 run: |
52 echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
53 (
54 echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
Philip H.81677992025-04-19 11:09:30 +020055 echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020056 ) >> $GITHUB_ENV
57
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020058 - name: Configure
K.Takataad85af52022-11-25 00:57:05 +000059 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020060 run: |
61 ./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing
62 # Append various warning flags to CFLAGS.
James McCoyeed96162021-08-09 13:20:38 +020063 sed -i -f ci/config.mk.sed src/auto/config.mk
64 sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk
Christian Brabandt95ff39f2024-05-22 07:53:23 +020065 # -O2 gives false warning and turns it into an error:
66 # warning: function may return address of local variable [-Wreturn-local-addr]
67 sed -i 's/-O2 \?//' src/auto/config.mk
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020068
69 - name: Build/scan vim
K.Takataad85af52022-11-25 00:57:05 +000070 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020071 run: |
K.Takataad85af52022-11-25 00:57:05 +000072 cov-build --dir cov-int make -j${NPROC}
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020073
74 - name: Submit results
K.Takataad85af52022-11-25 00:57:05 +000075 if: env.TOKEN
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020076 run: |
K.Takataad85af52022-11-25 00:57:05 +000077 tar zcf cov-scan.tgz cov-int
78 curl --form token=$TOKEN \
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020079 --form email=$EMAIL \
80 --form file=@cov-scan.tgz \
81 --form version="$(git rev-parse HEAD)" \
82 --form description="Automatic GHA scan" \
K.Takataad85af52022-11-25 00:57:05 +000083 'https://scan.coverity.com/builds?project=vim'
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020084 env:
Bram Moolenaard57a6bd2021-08-07 12:32:20 +020085 EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}