# Run BSD VM jobs with manually-implemented retries. name: "bsd vm check" on: workflow_call: inputs: os-target: type: string description: "BSD target (x86_64-unknown-freebsd, x86_64-unknown-netbsd, or x86_64-unknown-openbsd)" required: true os-version: type: string description: "Release version" required: true permissions: {} # Duplicated because GHA doesn't support passing env vars through without making them all inputs or something. env: RUST_BACKTRACE: 1 CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 CARGO_HUSKY_DONT_INSTALL_HOOKS: true jobs: bsd-vm-test: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 1 - name: OpenBSD Test (Attempt 1) uses: vmactions/openbsd-vm@9a8e4351a4a0dc6238e7c69276dcbf6c03bea576 # v1.3.6 if: ${{ inputs.os-target == 'x86_64-unknown-openbsd' }} with: release: "${{ inputs.os-version }}" envs: "RUST_BACKTRACE CARGO_INCREMENTAL CARGO_PROFILE_DEV_DEBUG CARGO_HUSKY_DONT_INSTALL_HOOKS" usesh: true run: sh ./scripts/ci/ci_bsd.sh ${{ inputs.os-target }} id: openbsd_attempt_1 continue-on-error: true - name: OpenBSD Test (Attempt 2) uses: vmactions/openbsd-vm@9a8e4351a4a0dc6238e7c69276dcbf6c03bea576 # v1.3.6 if: ${{ inputs.os-target == 'x86_64-unknown-openbsd' && steps.openbsd_attempt_1.outcome == 'failure' }} with: release: "${{ inputs.os-version }}" envs: "RUST_BACKTRACE CARGO_INCREMENTAL CARGO_PROFILE_DEV_DEBUG CARGO_HUSKY_DONT_INSTALL_HOOKS" usesh: true run: sh ./scripts/ci/ci_bsd.sh ${{ inputs.os-target }} id: openbsd_attempt_2 continue-on-error: true - name: OpenBSD Test (Attempt 3) uses: vmactions/openbsd-vm@9a8e4351a4a0dc6238e7c69276dcbf6c03bea576 # v1.3.6 if: ${{ inputs.os-target == 'x86_64-unknown-openbsd' && steps.openbsd_attempt_2.outcome == 'failure' }} with: release: "${{ inputs.os-version }}" envs: "RUST_BACKTRACE CARGO_INCREMENTAL CARGO_PROFILE_DEV_DEBUG CARGO_HUSKY_DONT_INSTALL_HOOKS" usesh: true run: sh ./scripts/ci/ci_bsd.sh ${{ inputs.os-target }} id: openbsd_attempt_3 - name: Check result if: ${{ failure() }} run: exit 1