salt-bootstrap/.github/workflows/test-macos.yml

95 lines
3 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
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
## DGM needs cleanup
echo "matrix instance ,${{ matrix.instance }},"
vt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /')
vt_parms2=$(echo "$vt_parms" | sed 's/-/./')
vt_parm_ver=$(echo "$vt_parms2" | awk -F ' ' '{print $2}')
echo "vt parms ,$vt_parms, vt_parms2 ,$vt_parms2, vt_parms_ver ,$vt_parm_ver,"
echo "SaltVersion=$vt_parm_ver" >> $GITHUB_ENV
- name: Bootstrap Salt
run: |
# sed 1st - becomes space, 2nd - becomes dot
## DGM needs cleanup
echo "matrix instance ,${{ matrix.instance }},"
bt_parms=$(echo "${{ matrix.instance }}" | sed 's/-/ /')
bt_parms2=$(echo "$bt_parms" | sed 's/-/./')
bt_arg1=$(echo "$bt_parms2" | awk -F ' ' '{print $1}')
bt_arg2=$(echo "$bt_parms2" | awk -F ' ' '{print $2}')
echo "bt parms ,$bt_parms, bt_parms2 ,$bt_parms2, bt_arg1 ,$bt_arg1, bt_arg2 ,$bt_arg2,"
sudo sh -x ./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/