7a25613f848fcc33209876991e24d228fefc3b58
[geeqie.git] / .github / workflows / check-build-actions.yml
1 name: Geeqie check build
2 run-name: ${{ github.actor }} is running Geeqie check build
3 on: [push, pull_request]
4 jobs:
5   Check-Markdown:
6     runs-on: ubuntu-22.04
7     steps:
8     - uses: actions/checkout@v2
9     - name: Run Markdown Lint
10       uses: actionshub/markdownlint@main
11
12   Check-Shellcheck:
13     runs-on: ubuntu-22.04
14     steps:
15     - uses: actions/checkout@v2
16     - name: Run Shellcheck Lint
17       uses: ludeeus/action-shellcheck@2.0.0
18       with:
19         ignore_names: downsize
20
21   Check-Code-Correctness:
22     runs-on: ubuntu-22.04
23     steps:
24     - uses: actions/checkout@v2
25     - name: Run Clang Tidy
26       uses: "muxee/clang-tidy-action@master"
27       secrets: ["GITHUB_TOKEN"]
28
29   Check-Build-No-Options:
30     runs-on: ubuntu-22.04
31     steps:
32     - run: sudo apt-get update
33     - run: sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin
34     - run: sudo apt-get install at-spi2-core
35     - run: sudo apt-get install desktop-file-utils
36     - run: sudo apt-get install gettext
37     - run: sudo apt-get install libgtk-3-bin
38     - run: sudo apt-get install shellcheck
39     - uses: actions/checkout@v3
40     - uses: actions/setup-python@v4
41     - run: sudo apt-get install xvfb
42     - uses: BSFishy/meson-build@v1.0.3
43       with:
44         action: test
45         directory: build
46         setup-options: >
47           -Darchive=disabled
48           -Dcms=disabled
49           -Ddevel=disabled
50           -Ddjvu=disabled
51           -Ddoxygen=disabled
52           -Devince=disabled
53           -Dexecinfo=disabled
54           -Dexiv2=disabled
55           -Dgit=disabled
56           -Dgps-map=disabled
57           -Dgtk4=disabled
58           -Dheif=disabled
59           -Dj2k=disabled
60           -Djpeg=disabled
61           -Djpegxl=disabled
62           -Dlibraw=disabled
63           -Dlua=disabled
64           -Dpandoc=disabled
65           -Dpdf=disabled
66           -Dspell=disabled
67           -Dtiff=disabled
68           -Dvideothumbnailer=disabled
69           -Dwebp=disabled
70           -Dyelp-build=disabled
71         options: --verbose
72         meson-version: 1.0.0
73     - name: Upload logs
74       uses: actions/upload-artifact@v2
75       if: always()
76       with:
77         name: logs-all-no-options
78         path: ${{ github.workspace }}/build/meson-logs/*.txt
79         retention-days: 5
80
81   Check-Build-Most-Options:
82     runs-on: ubuntu-22.04
83     steps:
84     - run: sudo apt-get update
85     - run: sudo apt-get install at-spi2-core
86     - run: sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin
87     - run: sudo apt-get install clang-tidy
88     - run: sudo apt-get install desktop-file-utils
89     - run: sudo apt-get install evince
90     - run: sudo apt-get install gettext
91     - run: sudo apt-get install libarchive-dev
92     - run: sudo apt-get install libchamplain-0.12-dev libchamplain-gtk-0.12-dev
93     - run: sudo apt-get install libdw-dev
94     - run: sudo apt-get install libdwarf-dev
95     - run: sudo apt-get install libgexiv2-dev
96     - run: sudo apt-get install libgspell-1-dev
97     - run: sudo apt-get install libgtk-3-bin
98     - run: sudo apt-get install libheif-dev
99     - run: sudo apt-get install liblua5.3-dev
100     - run: sudo apt-get install libpoppler-glib-dev
101     - run: sudo apt-get install libraw-dev libomp-dev
102     - run: sudo apt-get install libunwind-dev
103     - run: sudo apt-get install libwebp-dev
104     - run: sudo apt-get install libwebp7
105     - run: sudo apt-get install pandoc
106     - run: sudo apt-get install shellcheck
107     #~ - run: sudo apt-get install libffmpegthumbnailer-dev
108     #~ - run: sudo apt-get install libjxl-dev
109     #~ - run: sudo apt-get install yelp-tools
110     - uses: actions/checkout@v3
111       with:
112         fetch-depth: '0'
113     - uses: actions/setup-python@v4
114     - run: sudo apt-get install xvfb
115     - uses: BSFishy/meson-build@v1.0.3
116       with:
117         action: test
118         directory: build
119         setup-options: -Ddevel=enabled
120         options: --verbose
121         meson-version: 1.0.0
122     - name: Upload logs
123       uses: actions/upload-artifact@v2
124       if: always()
125       with:
126         name: logs-all-most-options
127         path: ${{ github.workspace }}/build/meson-logs/*.txt
128         retention-days: 5