summaryrefslogtreecommitdiff
path: root/.github/workflows/cibuild.yml
blob: 4372e05ccee1905cf9807c6af06cabe17e72be43 (plain)
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
name: Build test
on:
  pull_request:
    paths-ignore:
      - 'Documentation/**'
      - 'lib*/docs/**'
  push:
    branches:
      - 'cibuild'
      - 'master'
      - 'next'
      - 'stable/**'
    paths-ignore:
      - 'Documentation/**'
      - 'lib*/docs/**'

permissions:
  contents: read # to fetch code (actions/checkout)

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        env:
          - { COMPILER: "gcc",   COMPILER_VERSION: "10", SANITIZE: "yes"  }
          - { COMPILER: "gcc",   COMPILER_VERSION: "10", SANITIZE: "no"   }
          - { COMPILER: "clang", COMPILER_VERSION: "15", SANITIZE: "yes"  }
          - { COMPILER: "clang", COMPILER_VERSION: "15", SANITIZE: "no"   }
    env: ${{ matrix.env }}
    steps:
      - name: Repository checkout
        uses: actions/checkout@v1
      - name: Ubuntu setup
        run: sudo -E .github/workflows/cibuild-setup-ubuntu.sh
      - name: Configure
        run: .github/workflows/cibuild.sh CONFIGURE
      - name: Code checks
        run: .github/workflows/cibuild.sh CODECHECK
      - name: Configure & Make
        run: .github/workflows/cibuild.sh MAKE
      - name: Check
        run: sudo -E .github/workflows/cibuild.sh CHECK
      - name: Make install
        run: .github/workflows/cibuild.sh INSTALL
  coveralls:
    permissions:
      contents: read # to fetch code (actions/checkout)
      checks: write # to create new checks (coverallsapp/github-action)

    runs-on: ubuntu-latest
    if: github.repository == 'util-linux/util-linux'
    env:
      COMPILER: gcc
      COMPILER_VERSION: 10
      SANITIZE: no
      COVERAGE: yes
    steps:
      - name: Repository checkout
        uses: actions/checkout@v1
      - name: Ubuntu setup
        run: sudo -E .github/workflows/cibuild-setup-ubuntu.sh
      - name: Configure & Make
        run: .github/workflows/cibuild.sh CONFIGURE MAKE
      - name: Check
        run: sudo -E .github/workflows/cibuild.sh CHECK
      - name: Coveralls
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: ./coverage.info
  meson:
    needs: build
    runs-on: ubuntu-latest
    env:
      COMPILER: gcc
      COMPILER_VERSION: 10
      SANITIZE: no
    steps:
      - name: Repository checkout
        uses: actions/checkout@v1
      - name: Ubuntu setup
        run: sudo -E .github/workflows/cibuild-setup-ubuntu.sh
      - name: Meson configure
        run: .github/workflows/cibuild.sh MESONCONF
      - name: Meson build
        run: .github/workflows/cibuild.sh MESONBUILD
  distcheck:
    needs: build
    runs-on: ubuntu-latest
    env:
      COMPILER: gcc
      COMPILER_VERSION: 10
      SANITIZE: no
      TRANSLATE_MANPAGES: yes
    steps:
      - name: Repository checkout
        uses: actions/checkout@v1
      - name: Ubuntu setup
        run: sudo -E .github/workflows/cibuild-setup-ubuntu.sh
      - name: Configure
        run: .github/workflows/cibuild.sh CONFIGURE
      - name: Make distcheck
        run: .github/workflows/cibuild.sh DISTCHECK
  build-arch:
    name: build (qemu-user, ${{ matrix.arch }})
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - arch: s390x
          - arch: riscv64
    steps:
      - name: Repository checkout
        uses: actions/checkout@v1
      - uses: uraimo/run-on-arch-action@v2
        with:
          arch: ${{ matrix.arch }}
          dockerRunArgs: --privileged -v /dev:/dev
          distro: ubuntu_latest
          run: |
            export COMPILER=gcc
            export COMPILER_VERSION=10
            export SANITIZE=no
            export QEMU_USER=1

            # name: Ubuntu setup
            .github/workflows/cibuild-setup-ubuntu.sh
            git config --global --add safe.directory "$PWD"
            # Configure & Make
            .github/workflows/cibuild.sh CONFIGURE MAKE
            # Check
            .github/workflows/cibuild.sh CHECK