This repository was archived by the owner on Aug 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
125 lines (96 loc) · 3.87 KB
/
Copy pathci.yml
File metadata and controls
125 lines (96 loc) · 3.87 KB
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
name: CI
on:
push:
branches: [master, stable, next]
pull_request:
branches: [master, stable, next]
workflow_dispatch:
jobs:
tcc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake tcc
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with tcc
run: |
env CC=tcc CFLAGS='-w' CPPFLAGS="-DDEV_MODE=1" ./configure --prefix=/tmp --disable-dependency-tracking --disable-shared || cat config.log
make -j $(nproc) && make check && make install
env CC=tcc CPPFLAGS='-I/tmp/include' LDFLAGS='-L/tmp/lib' LD_LIBRARY_PATH='/tmp/lib' ./test/constcheck.sh
make uninstall
make distclean
regular:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: C99 compat check
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) CFLAGS='-g0' > /dev/null && cp src/libsodium/.libs/libsodium.so lib.so && make clean > /dev/null && make CFLAGS='-g0' CPPFLAGS='-DDEV_MODE=1 -DSODIUM_C99\(X\)=' > /dev/null && cp src/libsodium/.libs/libsodium.so lib-oldc.so && cmp lib.so lib-oldc.so && echo No binary changes && make clean > /dev/null
make distcheck
make distclean > /dev/null
- name: Regular compilation
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --enable-minimal
make -j $(nproc)
make check
( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c
make distclean > /dev/null
check-globals:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake
- name: Autogen
run: ./autogen.sh -s
- name: Check globals
run: |
if [ -x test/rename-globals.sh ]; then test/rename-globals.sh; fi
other-comp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake clang
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with g++
run: |
env CC=g++ CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) check
make clean > /dev/null
- name: Compilation with clang
run: |
env CC=clang CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking
make -j $(nproc) check
make clean > /dev/null
other-arch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake qemu-user-static gcc-powerpc-linux-gnu
- name: Autogen
run: ./autogen.sh -s
- name: Big-Endian PowerPC compilation
run: |
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu
make -j $(nproc)
make clean > /dev/null