File: ci.yml

package info (click to toggle)
libsodium 1.0.20-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 10,088 kB
  • sloc: ansic: 49,467; sh: 5,638; asm: 2,985; makefile: 917; python: 209; cs: 35; xml: 30; pascal: 11
file content (179 lines) | stat: -rw-r--r-- 5,447 bytes parent folder | download
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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@v4

      - 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

  zig:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Update packages list
        run: sudo apt-get update

      - name: Install Zig
        uses: goto-bus-stop/setup-zig@d866436887ad1b24590684f9d00480376663dd36
        with:
          version: 0.12.0

      - name: Autogen
        run: ./autogen.sh -s

      - name: Compilation with zig
        run: |
          zig build
          zig build -Dtarget=x86_64-linux
          zig build -Dtarget=aarch64-linux
          zig build -Dtarget=x86_64-windows
          zig build -Dtarget=aarch64-windows
          zig build -Dtarget=x86_64-macos
          zig build -Dtarget=aarch64-macos
          zig build -Dtarget=wasm32-wasi
          zig build -Doptimize=ReleaseFast
          rm -fr zig-cache zig-out

  regular:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - 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@v4

      - 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@v4

      - 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@v4

      - name: Update packages list
        run: sudo apt-get update

      - name: Install dependencies
        run: sudo apt-get install -y build-essential libtool autoconf automake 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

  android:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Update packages list
        run: sudo apt-get update

      - name: Install base dependencies
        run: sudo apt-get install -y libtool autoconf automake unzip

      - name: Autogen
        run: ./autogen.sh -s

      - name: Install Android NDK
        run: |
          mkdir /tmp/android && cd /tmp/android
          curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
          unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk

      - name: Android compilation
        run: |
          env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-aar.sh