mirror of
https://github.com/ovh/the-bastion.git
synced 2025-01-04 06:27:11 +08:00
c201f44d83
The chain of executions is as is: - `docker_build_and_run_tests_all.sh` - launches several instances of `docker_build_and_run_tests.sh` - builds docker images with the `target_role.sh` and `tester_role.sh` entrypoints - inside the tester docker, `tester_role.sh` launches `launch_tests_on_instance.sh` - the target docker gets tested after setting up accounts, SSH etc. Previously, these scripts passed options to each other either by a mix of environment variables and command-line arguments, with some inconsistencies here and there. Now, `launch_tests_on_instance.sh` supports a lot of command-line options, which can be specified directly if testing a remote server, or can be passed-through by the calling script in case of docker tests. `docker_build_and_run_tests.sh` and `docker_build_and_run_tests_all.sh` also support to passthrough these options down.
33 lines
1.5 KiB
YAML
33 lines
1.5 KiB
YAML
name: FreeBSD tests
|
|
|
|
on:
|
|
pull_request:
|
|
types: [labeled, synchronize]
|
|
|
|
jobs:
|
|
freebsd:
|
|
runs-on: macos-latest
|
|
name: FreeBSD
|
|
if: ${{ contains(github.event.pull_request.labels.*.name, 'tests:full') || contains(github.event.pull_request.labels.*.name, 'tests:long') || contains(github.event.pull_request.labels.*.name, 'tests:freebsd') }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Functional tests under FreeBSD
|
|
uses: vmactions/freebsd-vm@main
|
|
with:
|
|
usesh: true
|
|
sync: sshfs
|
|
run: |
|
|
set -ex
|
|
freebsd-version
|
|
mount -o acls /
|
|
pkg install -y bash rsync ca_root_nss jq fping screen flock curl
|
|
mkdir -p /opt/bastion
|
|
rsync -a . /opt/bastion/
|
|
/opt/bastion/bin/admin/packages-check.sh -i
|
|
/opt/bastion/bin/admin/install-ttyrec.sh -s
|
|
/opt/bastion/bin/admin/install-yubico-piv-checker.sh -s
|
|
/opt/bastion/bin/admin/install --new-install
|
|
ssh-keygen -t ed25519 -f id_user
|
|
ssh-keygen -t ed25519 -f id_root
|
|
WANT_HTTP_PROXY=0 NO_SLEEP=1 user_pubkey=$(cat id_user.pub) root_pubkey=$(cat id_root.pub) TARGET_USER=user5000 /opt/bastion/tests/functional/docker/target_role.sh
|
|
/opt/bastion/tests/functional/launch_tests_on_instance.sh --module=500-http-proxy.sh --has-mfa=0 --has-mfa-password=1 --has-pamtester=1 --skip-consistency-check --remote-etc-bastion=/usr/local/etc/bastion 127.0.0.1 22 0 user5000 id_user id_root
|