mirror of
https://github.com/saltstack/salt-bootstrap.git
synced 2025-04-10 06:41:41 +00:00
93 lines
2.8 KiB
YAML
93 lines
2.8 KiB
YAML
name: Test MacOS
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
distro-slug:
|
|
type: string
|
|
required: true
|
|
description: The Distribution Slug
|
|
|
|
display-name:
|
|
type: string
|
|
required: true
|
|
description: The Display Name For The Job
|
|
|
|
runs-on:
|
|
type: string
|
|
required: true
|
|
description: The GitHub MacOS Worker To Run Workflow On
|
|
|
|
instances:
|
|
type: string
|
|
required: true
|
|
description: The Instances To Test
|
|
|
|
container-slug:
|
|
type: string
|
|
required: true
|
|
description: The Container Slug
|
|
|
|
timeout:
|
|
type: number
|
|
required: false
|
|
default: 20
|
|
description: The timeout(in minutes) for the workflow
|
|
|
|
jobs:
|
|
Test:
|
|
name: ${{ matrix.instance }}
|
|
runs-on: ${{ inputs.runs-on }}
|
|
## runs-on: macos-13
|
|
timeout-minutes: ${{ inputs.timeout }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
instance: ${{ fromJSON(inputs.instances) }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Python Dependencies with pip breakage
|
|
if: ${{ inputs.distro-slug != 'macos-13' }}
|
|
run: |
|
|
python3 -m pip install --break-system-packages -r tests/requirements.txt
|
|
|
|
- name: Install Python Dependencies without pip breakage
|
|
if: ${{ inputs.distro-slug == 'macos-13' }}
|
|
run: |
|
|
python3 -m pip install -r tests/requirements.txt
|
|
|
|
- name: Get Version
|
|
run: |
|
|
# We need to get the version here and make it an environment variable
|
|
# It is used to install via bootstrap and in the test
|
|
# The version is in the instance name
|
|
# sed 1st - becomes space, 2nd - becomes dot
|
|
vt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./')
|
|
vt_parm_ver=$(echo "$vt_parms" | awk -F ' ' '{print $2}')
|
|
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV
|
|
|
|
- name: Bootstrap Salt
|
|
run: |
|
|
# sed 1st - becomes space, 2nd - becomes dot
|
|
bt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /' | sed 's/-/./')
|
|
bt_arg1=$(echo "$bt_parms" | awk -F ' ' '{print $1}')
|
|
bt_arg2=$(echo "$bt_parms" | awk -F ' ' '{print $2}')
|
|
sudo sh ./bootstrap-salt.sh "$bt_arg1" "$bt_arg2"
|
|
|
|
- name: Test Bootstrap
|
|
run: |
|
|
pytest --cache-clear -v -s -ra --log-cli-level=debug tests/integration/
|
|
|
|
- name: Set Exit Status
|
|
if: always()
|
|
run: |
|
|
mkdir exitstatus
|
|
echo "${{ job.status }}" > exitstatus/${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
|
|
|
|
- name: Upload Exit Status
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: exitstatus-${{ github.job }}-${{ matrix.instance }}-${{ inputs.distro-slug }}
|
|
path: exitstatus/
|