mirror of
https://github.com/NLnetLabs/krill.git
synced 2026-09-26 19:34:51 +02:00
This PR removes the static-openssl feature. If necessary, this features can be invoked by selecting openssl/vendored directly. The PR also removes building and testing with default features from the CI workflow. The only difference between default and all features currently is rta which is deprecated and will be removed, anyway. This PR now also fixes a few issues in krillc config simple and the post install scripts for Debian and RPM packages.
146 lines
4.0 KiB
YAML
146 lines
4.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
# permit manual invocation of the workflow via the GitHub Actions web UI
|
|
workflow_dispatch:
|
|
|
|
# run the tests for any direct push to main
|
|
push:
|
|
branches: ['main']
|
|
paths-ignore:
|
|
- '.dockerignore'
|
|
- '.github/workflow/e2e.yml'
|
|
- '.github/workflow/pkg.yml'
|
|
- '.github/workflow/e2e test cache rebuild.yml'
|
|
- 'Changelog.md'
|
|
- 'Dockerfile'
|
|
- 'doc/**'
|
|
- 'docker/**'
|
|
- 'LICENSE'
|
|
- 'README.md'
|
|
- 'tests/e2e/**'
|
|
|
|
# run the tests on creation or update of any pull request
|
|
pull_request:
|
|
paths-ignore:
|
|
- '.dockerignore'
|
|
- '.github/workflow/e2e.yml'
|
|
- '.github/workflow/pkg.yml'
|
|
- '.github/workflow/e2e test cache rebuild.yml'
|
|
- 'Changelog.md'
|
|
- 'Dockerfile'
|
|
- 'doc/**'
|
|
- 'docker/**'
|
|
- 'LICENSE'
|
|
- 'README.md'
|
|
- 'tests/e2e/**'
|
|
|
|
jobs:
|
|
build:
|
|
name: build
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
|
|
# Test against the oldest supported version.
|
|
# Test against beta Rust to get early warning of any problems that might occur with the upcoming Rust release.
|
|
# Order: oldest Rust to newest Rust.
|
|
rust: [1.82.0, stable, beta]
|
|
|
|
# Test with no features and all features.
|
|
args: ["--no-default-features", "--all-features"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
uses: hecrj/setup-rust-action@v1
|
|
with:
|
|
rust-version: ${{ matrix.rust }}
|
|
- if: matrix.rust == 'stable' && matrix.args == '--all-features'
|
|
run: cargo clippy ${{ matrix.args }} -- -D warnings
|
|
- run: cargo build ${{ matrix.args }} --locked
|
|
- run: cargo test ${{ matrix.args }} -- --test-threads=1 2>&1
|
|
|
|
pykmip-test:
|
|
name: pykmip-test
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
rust: [1.82.0, stable, beta]
|
|
features: ["hsm", "hsm,hsm-tests-kmip"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Rust
|
|
uses: hecrj/setup-rust-action@v2
|
|
with:
|
|
rust-version: ${{ matrix.rust }}
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
# Pin to Python 3.11 because 3.12 removes the ssl.wrap_socket()
|
|
# function which PyKMIP uses.
|
|
python-version: '3.11'
|
|
|
|
- name: Install PyKMIP
|
|
run: |
|
|
pip install pykmip --constraint test-resources/pykmip/constraints.txt
|
|
|
|
- name: Compile the tests
|
|
run: |
|
|
cargo build --tests --no-default-features --features ${{ matrix.features }}
|
|
|
|
- name: Run the tests against the PyKMIP server
|
|
run: |
|
|
cd test-resources/pykmip
|
|
python run-server.py &
|
|
sleep 5s
|
|
openssl s_client -connect 127.0.0.1:5696 || true
|
|
cd -
|
|
cargo test --no-default-features --features ${{ matrix.features }} -- --test-threads=1 2>&1
|
|
|
|
- name: Dump the PyKMIP log
|
|
if: always()
|
|
working-directory: test-resources/pykmip
|
|
run: |
|
|
ls -la
|
|
cat server.log
|
|
|
|
softhsm2-test:
|
|
name: softhsm2-test
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
rust: [1.82.0, stable, beta]
|
|
features: ["hsm,hsm-tests-pkcs11"]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install Rust
|
|
uses: hecrj/setup-rust-action@v2
|
|
with:
|
|
rust-version: ${{ matrix.rust }}
|
|
|
|
- name: Install SoftHSM2
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y softhsm2
|
|
sudo usermod -aG softhsm $(whoami)
|
|
sg softhsm -c "softhsm2-util --init-token --slot 0 --label \"My token 1\" --pin 1234 --so-pin 1234"
|
|
|
|
- name: Compile the tests
|
|
run: |
|
|
cargo build --tests --no-default-features --features ${{ matrix.features }}
|
|
|
|
- name: Run the tests against SoftHSM2
|
|
run: |
|
|
sg softhsm -c "cargo test --no-default-features --features ${{ matrix.features }} -- --test-threads=1 2>&1"
|
|
|
|
- name: Dump the SoftHSM2 log
|
|
if: always()
|
|
run: |
|
|
cat /var/log/syslog
|