Fix #99: Add support for FreeBSD 13.5 #675
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: '*' | |
| tags: v* | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| build: # make sure build/ci work properly | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 2 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: npm install | |
| - run: npm run all | |
| FreeBSD: # make sure the action works on a clean machine without building | |
| name: FreeBSD ${{ matrix.architecture.name }} ${{ matrix.version }} on ${{ matrix.host.name }} | |
| runs-on: ${{ matrix.host.name }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '13.4' | |
| - '13.3' | |
| - '13.2' | |
| - '13.1' | |
| - '13.0' | |
| - '12.4' | |
| - '12.2' | |
| architecture: | |
| - name: arm64 | |
| - name: x86-64 | |
| uname: amd64 | |
| host: | |
| - name: ubuntu-latest | |
| # /home is symlinked to /usr/home. pwd will return the resolved path. | |
| work_directory: /usr/home/runner/work/action/action | |
| - name: macos-13 | |
| work_directory: /Users/runner/work/action/action | |
| exclude: | |
| - version: '12.2' | |
| architecture: { name: arm64 } | |
| - architecture: { name: arm64 } | |
| host: { name: macos-13 } | |
| include: | |
| - version: '14.2' | |
| architecture: { name: arm64 } | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.2' | |
| architecture: | |
| name: x86-64 | |
| uname: amd64 | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.1' | |
| architecture: { name: arm64 } | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.1' | |
| architecture: | |
| name: x86-64 | |
| uname: amd64 | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.0' | |
| architecture: { name: arm64 } | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.0' | |
| architecture: | |
| name: x86-64 | |
| uname: amd64 | |
| host: | |
| name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - version: '14.0' | |
| architecture: | |
| name: x86-64 | |
| uname: amd64 | |
| host: | |
| name: macos-13 | |
| work_directory: /Users/runner/work/action/action | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: test | |
| uses: ./.github/workflows/support/test | |
| with: | |
| name: FreeBSD | |
| architecture: ${{ matrix.architecture.name }} | |
| version: ${{ matrix.version }} | |
| uname_release: ${{ matrix.version}}-RELEASE | |
| uname_hardware: ${{ matrix.architecture.uname || matrix.architecture.name }} | |
| work_directory: ${{ matrix.host.work_directory }} | |
| OpenBSD: | |
| name: OpenBSD ${{ matrix.architecture.name }} ${{ matrix.version }} on ${{ matrix.host.name }} | |
| runs-on: ${{ matrix.host.name }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '7.6' | |
| - '7.5' | |
| - '7.4' | |
| - '7.3' | |
| - '7.2' | |
| - '7.1' | |
| - '6.9' | |
| - '6.8' | |
| architecture: | |
| - name: arm64 | |
| - name: x86-64 | |
| uname: amd64 | |
| host: | |
| - name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - name: macos-13 | |
| work_directory: /Users/runner/work/action/action | |
| exclude: | |
| - version: '6.8' | |
| architecture: { name: arm64 } | |
| - architecture: { name: arm64 } | |
| host: { name: macos-13 } | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: test | |
| uses: ./.github/workflows/support/test | |
| with: | |
| name: OpenBSD | |
| architecture: ${{ matrix.architecture.name }} | |
| version: ${{ matrix.version }} | |
| uname_hardware: ${{ matrix.architecture.uname || matrix.architecture.name }} | |
| work_directory: ${{ matrix.host.work_directory }} | |
| NetBSD: | |
| name: NetBSD ${{ matrix.architecture.name }} ${{ matrix.version }} on ${{ matrix.host.name }} | |
| runs-on: ${{ matrix.host.name }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '10.1' | |
| - '10.0' | |
| - '9.4' | |
| - '9.3' | |
| - '9.2' | |
| architecture: | |
| - name: x86-64 | |
| uname: amd64 | |
| - name: arm64 | |
| uname: aarch64 | |
| host: | |
| - name: ubuntu-latest | |
| work_directory: /home/runner/work/action/action | |
| - name: macos-13 | |
| work_directory: /Users/runner/work/action/action | |
| exclude: | |
| - version: '9.4' | |
| architecture: { name: arm64 } | |
| - version: '9.3' | |
| architecture: { name: arm64 } | |
| - version: '9.2' | |
| architecture: { name: arm64 } | |
| - architecture: { name: arm64 } | |
| host: { name: macos-13 } | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: test | |
| uses: ./.github/workflows/support/test | |
| with: | |
| name: NetBSD | |
| architecture: ${{ matrix.architecture.name }} | |
| version: ${{ matrix.version }} | |
| uname_hardware: ${{ matrix.architecture.uname || matrix.architecture.name }} | |
| work_directory: ${{ matrix.host.work_directory }} | |
| test-no-env: | |
| timeout-minutes: 5 | |
| name: Test without environment variables | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.0' | |
| shutdown_vm: false | |
| run: env | sort | |
| test-cpu-count-config: | |
| timeout-minutes: 5 | |
| name: Test configuring CPU count | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.1' | |
| cpu_count: 8 | |
| shutdown_vm: false | |
| run: | | |
| sysctl hw.ncpu | |
| [ `sysctl -n hw.ncpu` = 8 ] | |
| test-hypervisor-config: | |
| timeout-minutes: 5 | |
| name: Test configuring hypervisor | |
| runs-on: macos-13 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.1' | |
| hypervisor: qemu | |
| shutdown_vm: false | |
| run: sysctl hw.model | |
| - name: Hypervisor should still be running, verify it's QEMU | |
| run: ps aux | grep -v grep | grep -q qemu | |
| test-custom-vm-image: | |
| timeout-minutes: 5 | |
| name: Test custom VM image | |
| runs-on: macos-13 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: openbsd | |
| architecture: x86-64 | |
| version: '7.3' | |
| image_url: https://github.com/cross-platform-actions/test-custom-image-builder/releases/download/v1.0.0/openbsd-7.3-x86-64.qcow2 | |
| shutdown_vm: false | |
| run: test -f /foo | |
| test-cpu-features: | |
| timeout-minutes: 5 | |
| name: Test CPU features | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| hypervisor: qemu | |
| shutdown_vm: false | |
| run: dmesg | grep -i avx2 | |
| test-no-vm-shutdown: | |
| timeout-minutes: 5 | |
| name: Test not shutting down the VM | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| hypervisor: qemu | |
| shutdown_vm: false | |
| run: true | |
| - name: Verify VM is still running | |
| run: ps aux | grep -v grep | grep -q qemu | |
| test-vm-shutdown: | |
| timeout-minutes: 5 | |
| name: Test shutting down the VM | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| hypervisor: qemu | |
| shutdown_vm: true | |
| run: true | |
| - name: Verify VM is not running | |
| run: ps aux | grep -v grep | grep -q -v qemu | |
| test-sync-files: | |
| timeout-minutes: 5 | |
| name: 'Test sync files: ${{ matrix.data.direction }}' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| data: | |
| - direction: runner-to-vm | |
| run: test -f foo.txt && touch bar.txt | |
| run_after: '! test -f bar.txt' # The new files from the VM should not sync back | |
| - direction: vm-to-runner | |
| run: '[ ! -f foo.txt ] && touch bar.txt' | |
| run_after: 'test -f bar.txt' # The new files from the VM should sync back | |
| - direction: false | |
| run: '[ ! -f foo.txt ] && touch bar.txt' | |
| run_after: '! test -f bar.txt' # The new files from the VM should not sync back | |
| - direction: true | |
| run: test -f foo.txt && touch bar.txt | |
| run_after: test -f bar.txt | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - run: touch foo.txt | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| sync_files: ${{ matrix.data.direction }} | |
| shutdown_vm: false | |
| run: ${{ matrix.data.run }} | |
| - name: Run after | |
| run: ${{ matrix.data.run_after }} | |
| multiple-steps: | |
| timeout-minutes: 5 | |
| name: Test running the action multiple times | |
| runs-on: macos-13 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| hypervisor: [qemu, xhyve] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Run action first time | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| hypervisor: ${{ matrix.hypervisor }} | |
| shutdown_vm: false | |
| run: touch foo.txt | |
| - name: Verify VM is still running | |
| run: ps aux | grep -v grep | grep -q -v qemu | |
| - name: Verify file is synced back | |
| run: test -f foo.txt | |
| - name: Run action second time | |
| uses: ./ | |
| with: | |
| operating_system: freebsd | |
| architecture: x86-64 | |
| version: '13.2' | |
| hypervisor: qemu | |
| shutdown_vm: true | |
| run: test -f foo.txt | |
| openbsd-qemu-macos: | |
| timeout-minutes: 5 | |
| name: Test OpenBSD with QEMU on macOS runner | |
| runs-on: macos-13 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Test | |
| uses: ./ | |
| with: | |
| operating_system: openbsd | |
| architecture: x86-64 | |
| version: '7.4' | |
| hypervisor: qemu | |
| sync_files: false | |
| shutdown_vm: false | |
| run: true |