mirror of
https://github.com/NLnetLabs/krill.git
synced 2026-09-20 16:37:43 +02:00
This PR changes how the clients -- krillc, krillta, as well as the integration tests -- work to better fit the derive model provided by clap. This results in basically everything in the cli module and all the integration tests being different now. The PR slightly changes the options for both krillc and krillta. For krillc, the --server, --token, --format, and --api options are now before the first subcommand (since they affect all commands). For krillta, those options are now after krillta proxy but before the next subcommand, while --format is now after krillta signer. This PR also removes client support and integration tests for RTA. This is a breaking change.
147 lines
4.1 KiB
YAML
147 lines
4.1 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.74.0, stable, beta]
|
|
|
|
# Test with no features, default features ("") and all except UI tests.
|
|
# Order: fewest features to most features.
|
|
args: ["--no-default-features", "", "--features all"]
|
|
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 == '--features all'
|
|
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-20.04
|
|
strategy:
|
|
matrix:
|
|
rust: [1.74.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-20.04
|
|
strategy:
|
|
matrix:
|
|
rust: [1.74.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
|