Update requirements #412
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: Nightly Build with System Tests (Development Branch) | |
on: | |
push: | |
schedule: | |
- cron: "0 1 * * THU" # At 01:00 on Thursday | |
workflow_dispatch: # Remove this | |
jobs: | |
prepare-environment: | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: replace-smtpd-with-aiosmtpd # Change this to the development branch name | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
cache: 'pip' | |
- name: Install dependencies | |
run: pip install -r requirements.txt --no-cache-dir | |
- name: Install SOCBED | |
run: pip install --editable . | |
build-machines: | |
runs-on: [self-hosted, linux] | |
needs: [prepare-environment] | |
timeout-minutes: 480 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: replace-smtpd-with-aiosmtpd # Change this to the development branch name | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
cache: 'pip' | |
- name: Build Internet Router | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: ./tools/build_internetrouter runner | |
- name: Build Company Router | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: ./tools/build_companyrouter runner | |
- name: Build Attacker | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 180 | |
max_attempts: 3 | |
command: ./tools/build_attacker runner | |
- name: Build Log Server | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 120 | |
max_attempts: 3 | |
command: ./tools/build_logserver runner | |
- name: Build Internal Server | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: ./tools/build_internalserver runner | |
- name: Build DMZ Server | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: ./tools/build_dmzserver runner | |
- name: Build Client | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 180 | |
max_attempts: 3 | |
command: ./tools/build_client runner | |
- name: Run logging setup | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: ./tools/logging_setup | |
test-machines: | |
runs-on: [self-hosted, linux] | |
needs: [build-machines] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: replace-smtpd-with-aiosmtpd # Change this to the development branch name | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
cache: 'pip' | |
- name: Ensure all machines are powered off | |
run: ./tools/cleanup_failed_session | |
- name: Run stable system tests | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 60 | |
max_attempts: 5 | |
on_retry_command: ./tools/cleanup_failed_session | |
command: tox -- -m "systest and not unstable" | |
delete-machines: | |
runs-on: [self-hosted, linux] | |
if: always() | |
needs: [test-machines] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: replace-smtpd-with-aiosmtpd # Change this to the development branch name | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
cache: 'pip' | |
- name: Delete created VMs | |
run: ./tools/delete_vms | |
- name: Uninstall SOCBED | |
run: pip uninstall socbed -y | |
- name: Remove all installed packages | |
run: pip freeze | xargs pip uninstall -y |