Support for macOS #338
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: c-presubmit | |
on: | |
push: | |
branches: ['master'] | |
pull_request: | |
branches: ['master'] | |
jobs: | |
clang-format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: clang-format | |
run: | | |
find . '(' -name '*.c' -or -name '*.h' ')' -print0 | \ | |
xargs -0 --verbose -- clang-format --Werror --dry-run | |
cpplint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: cpplint | |
run: pip install cpplint && cpplint --recursive . | |
test-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
container: | |
- 'debian:stable' | |
- 'debian:testing' | |
- 'alpine:latest' | |
- null | |
container: ${{ matrix.container }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install Debian dependencies | |
if: ${{ startsWith(matrix.container, 'debian:') }} | |
run: ./kokoro/rodete/fetch_dependencies.sh | |
- name: install Alpine dependencies | |
if: ${{ matrix.container == 'alpine:latest' }} | |
run: ./kokoro/alpine/fetch_dependencies.sh | |
- uses: cachix/install-nix-action@v17 | |
if: ${{ matrix.container == null }} | |
with: | |
nix_path: nixpkgs=channel:nixos-unstable | |
- name: install Nix dependencies | |
if: ${{ matrix.container == null }} | |
run: nix-shell --run 'meson --buildtype=release --werror build && ninja -C build && meson test --print-errorlogs -C build' | |
- name: setup build directory | |
if: ${{ matrix.container != null }} | |
run: meson --werror build | |
- name: build | |
if: ${{ matrix.container != null }} | |
run: ninja -C build | |
- name: test | |
if: ${{ matrix.container != null }} | |
run: meson test --print-errorlogs -C build | |
- name: install | |
if: ${{ matrix.container != null }} | |
run: | | |
DESTDIR=out meson install -C build | |
find build/out/ | |
test -x build/out/usr/local/bin/glome | |
test -x build/out/usr/local/sbin/glome-login | |
test -f build/out/usr/local/etc/glome/config | |
test -f build/out/usr/local/include/glome.h | |
# Dereference the library and check that it points to a valid file. | |
test -f build/out/usr/local/lib/libglome.so || \ | |
test -f build/out/usr/local/lib/x86_64-linux-gnu/libglome.so | |
test -f build/out/usr/local/lib/security/pam_glome.so || \ | |
test -f build/out/usr/local/lib/x86_64-linux-gnu/security/pam_glome.so | |
test-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: python -m pip install meson ninja | |
- name: Setup build directory | |
run: meson --werror build | |
- name: Build | |
run: ninja -C build | |
- name: Test | |
run: meson test --print-errorlogs -C build |