Build and test macos with circleci.
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
version: 2.1
|
version: 2.1
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build_linux:
|
||||||
description: Configure, build and package sudo
|
description: Configure, build and package sudo (Linux)
|
||||||
parameters:
|
parameters:
|
||||||
ldap:
|
ldap:
|
||||||
description: if true, build sudo's LDAP support
|
description: if true, build sudo's LDAP support
|
||||||
@@ -30,15 +30,15 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run:
|
- run:
|
||||||
name: "Building and packaging sudo"
|
name: "Building and packaging sudo (Linux)"
|
||||||
command: ./scripts/mkpkg <<# parameters.ldap >>--flavor=ldap --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu <</ parameters.ldap >><<# parameters.wolfssl >>--enable-wolfssl <</ parameters.wolfssl >><<^ parameters.logsrvd >>--disable-log-server --disable-log-client <</ parameters.logsrvd >><<^ parameters.intercept >>--disable-intercept <</ parameters.intercept >><<# parameters.static_sudoers >>--enable-static-sudoers <</ parameters.static_sudoers >>--enable-warnings --enable-werror --enable-sanitizer
|
command: ./scripts/mkpkg <<# parameters.ldap >>--flavor=ldap --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu <</ parameters.ldap >><<# parameters.wolfssl >>--enable-wolfssl <</ parameters.wolfssl >><<^ parameters.logsrvd >>--disable-log-server --disable-log-client <</ parameters.logsrvd >><<^ parameters.intercept >>--disable-intercept <</ parameters.intercept >><<# parameters.static_sudoers >>--enable-static-sudoers <</ parameters.static_sudoers >>--enable-warnings --enable-werror --enable-sanitizer
|
||||||
# Save workspace for subsequent jobs (i.e. test)
|
# Save workspace for subsequent jobs (i.e. test)
|
||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
root: .
|
root: .
|
||||||
paths:
|
paths:
|
||||||
- .
|
- .
|
||||||
test:
|
test_linux:
|
||||||
description: run sudo tests in a pre-built workspace
|
description: run sudo tests in a pre-built workspace (Linux)
|
||||||
docker:
|
docker:
|
||||||
- image: docker.io/sudoproject/ubuntu:latest
|
- image: docker.io/sudoproject/ubuntu:latest
|
||||||
user: build
|
user: build
|
||||||
@@ -47,64 +47,99 @@ jobs:
|
|||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: .
|
at: .
|
||||||
- run:
|
- run:
|
||||||
name: "Running tests"
|
name: "Running tests (Linux)"
|
||||||
command: make check
|
command: make check
|
||||||
environment:
|
environment:
|
||||||
# Leak sanitizer requires ptrace, disable it
|
# Leak sanitizer requires ptrace, disable it
|
||||||
ASAN_OPTIONS: detect_leaks=0
|
ASAN_OPTIONS: detect_leaks=0
|
||||||
|
|
||||||
|
build_macos:
|
||||||
|
description: Configure, build and package sudo (macOS)
|
||||||
|
macos:
|
||||||
|
xcode: 13.2.1 # indicate our selected version of Xcode
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: "Building and packaging sudo (macOS)"
|
||||||
|
command: ./scripts/mkpkg --enable-warnings --enable-werror
|
||||||
|
# Save workspace for subsequent jobs (i.e. test)
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: .
|
||||||
|
paths:
|
||||||
|
- .
|
||||||
|
test_macos:
|
||||||
|
description: run sudo tests in a pre-built workspace (macOS)
|
||||||
|
macos:
|
||||||
|
xcode: 13.2.1 # indicate our selected version of Xcode
|
||||||
|
steps:
|
||||||
|
# Reuse the workspace from the build job
|
||||||
|
- attach_workspace:
|
||||||
|
at: .
|
||||||
|
- run:
|
||||||
|
name: "Running tests (macOS)"
|
||||||
|
command: make check
|
||||||
|
|
||||||
# Orchestrate our job run sequence
|
# Orchestrate our job run sequence
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
build_and_test:
|
build_and_test:
|
||||||
jobs:
|
jobs:
|
||||||
- build:
|
- build_linux:
|
||||||
name: build-ldap
|
name: build-linux-ldap
|
||||||
ldap: true
|
ldap: true
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
- build:
|
- build_linux:
|
||||||
name: build-wolfssl
|
name: build-linux-wolfssl
|
||||||
wolfssl: true
|
wolfssl: true
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
- build:
|
- build_linux:
|
||||||
name: build-static-sudoers
|
name: build-linux-static-sudoers
|
||||||
static_sudoers: true
|
static_sudoers: true
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
- build:
|
- build_linux:
|
||||||
name: build-nologsrvd
|
name: build-linux-nologsrvd
|
||||||
logsrvd: false
|
logsrvd: false
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
- build:
|
- build_linux:
|
||||||
name: build-nointercept
|
name: build-linux-nointercept
|
||||||
logsrvd: false
|
logsrvd: false
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: main
|
only: main
|
||||||
- test:
|
- build_macos:
|
||||||
name: test-ldap
|
name: build-macos
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: main
|
||||||
|
- test_linux:
|
||||||
|
name: test-linux-ldap
|
||||||
requires:
|
requires:
|
||||||
- build-ldap
|
- build-linux-ldap
|
||||||
- test:
|
- test_linux:
|
||||||
name: test-wolfssl
|
name: test-linux-wolfssl
|
||||||
requires:
|
requires:
|
||||||
- build-wolfssl
|
- build-linux-wolfssl
|
||||||
- test:
|
- test_linux:
|
||||||
name: test-static-sudoers
|
name: test-linux-static-sudoers
|
||||||
requires:
|
requires:
|
||||||
- build-static-sudoers
|
- build-linux-static-sudoers
|
||||||
- test:
|
- test_linux:
|
||||||
name: test-nologsrvd
|
name: test-linux-nologsrvd
|
||||||
requires:
|
requires:
|
||||||
- build-nologsrvd
|
- build-linux-nologsrvd
|
||||||
- test:
|
- test_linux:
|
||||||
name: test-nointercept
|
name: test-linux-nointercept
|
||||||
requires:
|
requires:
|
||||||
- build-nointercept
|
- build-linux-nointercept
|
||||||
|
- test_macos:
|
||||||
|
name: test-macos
|
||||||
|
requires:
|
||||||
|
- build-macos
|
||||||
|
Reference in New Issue
Block a user