-
Notifications
You must be signed in to change notification settings - Fork 16
87 lines (78 loc) · 2.7 KB
/
ubuntu.yml
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
# SPDX-FileCopyrightText: Stone Tickle <[email protected]>
# SPDX-License-Identifier: GPL-3.0-only
name: ubuntu
on:
push:
branches:
- master
- '[0-9]+.[0-9]+'
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
jobs:
with-sanitizers:
runs-on: ubuntu-latest
steps:
# Checkout muon source and install dependencies.
- uses: actions/checkout@master
with:
fetch-depth: 0
# Bootstrap basic build.
- name: Bootstrap
run: |
./bootstrap.sh build
PATH="build:$PATH" build/muon-bootstrap -v setup build
build/muon-bootstrap -C build samu
# Build muon with ASan and UBSan and run the testsuite.
- name: build_asan_ubsan
run: |
build/muon setup -Db_sanitize=address,undefined build_asan_ubsan
build/muon -C build_asan_ubsan samu
- name: test_asan_ubsan
run: |
cd build_asan_ubsan
./muon test -d dots
# Build muon FORTIFY_SOURCE=3 and run the testsuite.
- name: build_fortify_source
run: |
CFLAGS=-U_FORTIFY_SOURCE D_FORTIFY_SOURCE=3 build/muon setup build_fortify_source
build/muon -C build_fortify_source samu
- name: test_fortify_source
run: |
cd build_fortify_source
./muon test -d dots
# Build muon with libpkgconf and run the testsuite. These steps exist
# due to the version of libpkgconf-dev that is currently packaged by Debian
# (1.8.1) containing a number of memory leaks that, if run with the sanitizers
# enabled, will cause a number of test failures. So we build without them
# enabled in this case.
# TODO: when Debian updates its libpkgconf-dev package, investigate whether
# this is still necessary.
with-libpkgconf:
runs-on: ubuntu-latest
env:
DEBIAN_FRONTEND: noninteractive
steps:
# Checkout muon source and install dependencies.
- uses: actions/checkout@master
with:
fetch-depth: 0
# Required for gnome module tests.
- name: Install dependencies
run: |
sudo apt install libpkgconf-dev libglib2.0-0 libglib2.0-dev libgirepository1.0-dev
# Bootstrap basic build.
- name: Bootstrap
run: |
./bootstrap.sh build
PATH="build:$PATH" build/muon-bootstrap -v setup build
build/muon-bootstrap -C build samu
# Build and run testsuite.
- name: build_with_libpkgconf
run: |
build/muon setup -Dlibpkgconf=enabled build_with_libpkgconf
build/muon -C build_with_libpkgconf samu
- name: test_with_libpkgconf
run: |
cd build_with_libpkgconf
./muon test -d dots