# CI Self-Test (smoke) — Local CI/CD System # # On-demand smoke test that validates the full pipeline end-to-end: # VM clone -> start -> IP detect -> trivial build -> artifact collect -> destroy # # Trigger: workflow_dispatch only (never runs on push/tag). # Jobs are independent — a failure in one does not cancel the others. # Covers both source transports: in-guest git clone (default) and the # host-side clone + zip transfer variant (use-git-clone: 'false'). # # Prerequisites (must be in place before running): # - Runner labels: windows-build:host and linux-build:host active # - Templates at GITEA_CI_TEMPLATE_PATH / GITEA_CI_LINUX_TEMPLATE_PATH # - Snapshots BaseClean (Windows) and BaseClean-Linux (Linux) exist # - ci-report-ip.service enabled in LinuxBuild2404 template name: CI Self-Test (smoke) on: workflow_dispatch: jobs: smoke-windows: runs-on: windows-build steps: - uses: https://gitea.emulab.it/Simone/local-ci-cd-system/.gitea/actions/local-ci-build@main with: # Trivial no-op build: write a marker file to the CI output directory. # The Windows build VM maps C:\CI\output as the artifact source. build-command: 'New-Item -ItemType Directory -Path C:\CI\output -Force | Out-Null; Set-Content C:\CI\output\smoke.txt "smoke-ok"' artifact-source: 'C:\CI\output' guest-os: 'Windows' job-id-suffix: 'smoke-win' artifact-name: 'smoke-windows-${{ github.run_id }}' smoke-linux: runs-on: linux-build steps: - uses: https://gitea.emulab.it/Simone/local-ci-cd-system/.gitea/actions/local-ci-build@main with: # Trivial no-op build: write a marker file to the CI output directory. # The Linux build VM uses /opt/ci/output as the artifact source. build-command: 'mkdir -p /opt/ci/output && echo smoke-ok > /opt/ci/output/smoke.txt' artifact-source: '/opt/ci/output' guest-os: 'Linux' job-id-suffix: 'smoke-linux' artifact-name: 'smoke-linux-${{ github.run_id }}' # ── Host-side clone + zip transfer variant (use-git-clone: 'false') ─────── smoke-windows-hostclone: runs-on: windows-build steps: - uses: https://gitea.emulab.it/Simone/local-ci-cd-system/.gitea/actions/local-ci-build@main with: build-command: 'New-Item -ItemType Directory -Path C:\CI\output -Force | Out-Null; Set-Content C:\CI\output\smoke.txt "smoke-ok"' artifact-source: 'C:\CI\output' guest-os: 'Windows' use-git-clone: 'false' job-id-suffix: 'smoke-win-hostclone' artifact-name: 'smoke-windows-hostclone-${{ github.run_id }}' smoke-linux-hostclone: runs-on: linux-build steps: - uses: https://gitea.emulab.it/Simone/local-ci-cd-system/.gitea/actions/local-ci-build@main with: build-command: 'mkdir -p /opt/ci/output && echo smoke-ok > /opt/ci/output/smoke.txt' artifact-source: '/opt/ci/output' guest-os: 'Linux' use-git-clone: 'false' job-id-suffix: 'smoke-linux-hostclone' artifact-name: 'smoke-linux-hostclone-${{ github.run_id }}'