File: compile.yml

package info (click to toggle)
scrypt 1.3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,368 kB
  • sloc: ansic: 5,763; sh: 5,504; makefile: 257
file content (114 lines) | stat: -rw-r--r-- 3,676 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
name: Compile & test

# Run whenever we push to any branch without a "/", other than [coverity-scan].
on:
  push:
    branches:
    - '*'
    - '!coverity-scan'

env:
  # Shared variables amongst all projects / platforms / compilers.
  CFLAGS_ALL: -std=c99 -O2
  CFLAGS_CLANG_LIBCPERCIVA: -Wall -Wextra -Werror -Weverything
                            -Wno-#warnings -Wno-pedantic -Wno-padded
                            -Wno-format-nonliteral
                            -Wno-disabled-macro-expansion
                            -Wno-missing-noreturn
                            -Wno-unused-macros
                            -Wno-documentation-unknown-command
                            -Wno-implicit-fallthrough
  CFLAGS_GCC_LIBCPERCIVA: -Wall -Wextra -Werror -Wpedantic
                          -pedantic-errors -Wno-clobbered
  # Variables for specific projects / platforms / compilers.
  CFLAGS_CLANG_PROJECT: -Wno-reserved-id-macro
  CFLAGS_GCC_PROJECT: -Wno-cpp
  CFLAGS_OSX: -Wno-poison-system-directories
              -Wno-deprecated-declarations
  LDFLAGS_OSX:

jobs:
  Ubuntu:
    name: Ubuntu
    runs-on: ubuntu-20.04
    steps:
    - name: Update apt-get
      run: sudo apt-get update
    - name: Install software
      run: sudo apt-get install --no-install-recommends
           valgrind autoconf-archive
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Run autoreconf
      run:
        autoreconf -i
    - name: Configure with clang
      env:
        CC: clang-10
        CFLAGS: ${{ env.CFLAGS_ALL }}
      run: ./configure
    - name: Compile with clang
      env:
        CC: clang-10
        CFLAGS: ${{ env.CFLAGS_ALL }}
                ${{ env.CFLAGS_CLANG_LIBCPERCIVA }}
                ${{ env.CFLAGS_CLANG_PROJECT }}
      # make(1) doesn't automatically override the CFLAGS macro set inside
      # Makefile with the environment variable.
      run: make CFLAGS="${{ env.CFLAGS }}"
    - name: Test clang binaries
      env:
        USE_VALGRIND: 1
      run: make test VERBOSE=1
    - name: Clean
      run: make clean
    - name: Configure with gcc
      env:
        CC: gcc-10
        CFLAGS: ${{ env.CFLAGS_ALL }}
      run: ./configure
    - name: Compile with gcc
      env:
        CC: gcc-10
        CFLAGS: ${{ env.CFLAGS_ALL }}
                ${{ env.CFLAGS_GCC_LIBCPERCIVA }}
                ${{ env.CFLAGS_GCC_PROJECT }}
      # make(1) doesn't automatically override the CFLAGS macro set inside
      # Makefile with the environment variable.
      run: make CFLAGS="${{ env.CFLAGS }}"
    - name: Test gcc binaries
      env:
        USE_VALGRIND: 1
      run: make test VERBOSE=1
    - name: Check for untracked files
      run: test -z "$(git status --porcelain=v1)"
  macOS:
    name: macOS
    runs-on: macOS-13
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Install software
      run: brew install automake
    - name: Run autoreconf
      run: autoreconf -i
    - name: Configure with clang
      env:
        CC: clang
        CFLAGS: ${{ env.CFLAGS_ALL }}
                ${{ env.CFLAGS_OSX }}
        LDFLAGS: ${{ env.LDFLAGS_OSX }}
      run: ./configure
    - name: Compile with clang
      env:
        CC: clang
        CFLAGS: ${{ env.CFLAGS_ALL }}
                ${{ env.CFLAGS_CLANG_LIBCPERCIVA }}
                ${{ env.CFLAGS_CLANG_PROJECT }}
                ${{ env.CFLAGS_OSX }}
        LDFLAGS: ${{ env.LDFLAGS_OSX }}
      # make(1) doesn't automatically override the CFLAGS macro set inside
      # Makefile with the environment variable.
      run: make CFLAGS="${{ env.CFLAGS }}"
    - name: Test clang binaries
      run: make test VERBOSE=1