36 lines
1.1 KiB
YAML
36 lines
1.1 KiB
YAML
name: Run anywhere
|
|
|
|
description: Runs the same code either in a VM or on the bare machine
|
|
|
|
inputs:
|
|
vm:
|
|
description: Which VM to run on.
|
|
envs:
|
|
description: List of relevant environment variables, which might need to be copied into the VM.
|
|
prepare:
|
|
description: Code to run in a prepare step, e.g. installing dependencies.
|
|
run:
|
|
description: Code to run as the main action.
|
|
required: true
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- if: ${{ inputs.vm == 'freebsd' }}
|
|
uses: vmactions/freebsd-vm@5a72679103d223925653750faa878a143340fbd0 # v1.5.0
|
|
with:
|
|
envs: ${{ inputs.envs }}
|
|
prepare: ${{ inputs.prepare }}
|
|
# Work around https://github.com/vmactions/freebsd-vm/issues/59
|
|
run: |
|
|
pw user add -n action -m
|
|
su action -c '${{ inputs.run }}'
|
|
- if: ${{ inputs.vm == '' }}
|
|
name: Prepare
|
|
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
|
|
run: ${{ inputs.prepare }}
|
|
- if: ${{ inputs.vm == '' }}
|
|
name: Run
|
|
shell: ${{ runner.os == 'Windows' && 'pwsh' || 'bash' }}
|
|
run: ${{ inputs.run }}
|