Skip to content

test-dispatch

test-dispatch #56

Workflow file for this run

name: Build Ska Package
on:
repository_dispatch:
types:
- test-dispatch
jobs:
arguments:
runs-on: ubuntu-latest
outputs:
package: ${{ steps.arguments.outputs.package }}
tag: ${{ steps.arguments.outputs.tag }}
arch: ${{ steps.arguments.outputs.arch }}
upload: ${{ steps.arguments.outputs.upload }}
python_version: ${{ steps.arguments.outputs.python_version }}
numpy_version: ${{ steps.arguments.outputs.numpy_version }}
channel_in: ${{ steps.arguments.outputs.channel_in }}
channel_out: ${{ steps.arguments.outputs.channel_out }}
steps:
- name: Check arguments
id: arguments
run: |
MISSING=""
set_default() {
if [[ -z "$2" ]]; then
echo "Setting default value for $1"
echo "$1=$3" >> $GITHUB_OUTPUT
else
echo "$1=$2" >> $GITHUB_OUTPUT
fi
}
require () {
if [[ -z "$2" ]]; then
echo "Required value $1 not given"
MISSING="$MISSING $1"
else
echo "$1=$2" >> $GITHUB_OUTPUT
fi
}
set_boolean_default() {
if [[ -z "$2" ]]; then
echo "Setting default value for $1"
echo "$1=$3" >> $GITHUB_OUTPUT
elif [[ "$2" == "true" || "$2" == "True" ]]; then
echo "$1=true" >> $GITHUB_OUTPUT
else
echo "$1=false" >> $GITHUB_OUTPUT
fi
}
require package ${{ github.event.client_payload.package }}
require tag ${{ github.event.client_payload.tag }}
set_boolean_default arch "${{ github.event.client_payload.arch }}" false
set_boolean_default upload "${{ github.event.client_payload.upload }}" false
set_default python_version "${{ github.event.client_payload.python_version }}" 3.11
set_default numpy_version "${{ github.event.client_payload.numpy_version }}" 1.26.2
set_default channel_in "${{ github.event.client_payload.channe_in }}" "flight"
set_default channel_out "${{ github.event.client_payload.channel_out }}" "test"
if [ "${{ github.event.client_payload.upload }}" == "" ]; then echo upload is not given; fi
if [ "${{ github.event.client_payload.upload }}" == "false" ]; then echo upload is false; fi
if [ "${{ github.event.client_payload.upload }}" == "False" ]; then echo upload is False; fi
if [[ ! -z $MISSING ]]; then echo "::warning:: Missing parameters: $MISSING"; exit 1; fi
- name: Add summary
run: |
echo "## Payload Arguments" >> $GITHUB_STEP_SUMMARY
echo "- Package: ${{ steps.arguments.outputs.package }}" >> $GITHUB_STEP_SUMMARY
echo "- Tag: ${{ steps.arguments.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
echo "- Arch: ${{ steps.arguments.outputs.arch }}" >> $GITHUB_STEP_SUMMARY
echo "- Upload: ${{ steps.arguments.outputs.upload }}" >> $GITHUB_STEP_SUMMARY
echo "- Python version: ${{ steps.arguments.outputs.python_version }}" >> $GITHUB_STEP_SUMMARY
echo "- Numpy version: ${{ steps.arguments.outputs.numpy_version }}" >> $GITHUB_STEP_SUMMARY
echo "- Input channel: ${{ steps.arguments.outputs.channel_in }}" >> $GITHUB_STEP_SUMMARY
echo "- Output channel: ${{ steps.arguments.outputs.channel_out }}" >> $GITHUB_STEP_SUMMARY
- name: Arch
run: |
echo "Arch: '${{ github.event.client_payload.arch }}'"
echo "not arch: '${{ !github.event.client_payload.arch }}'"
echo "not Arch (2): ${{ (github.event.client_payload.arch != 'true') && (github.event.client_payload.arch != 'True')}}"
echo "not Arch (3): ${{ !github.event.client_payload.arch && (github.event.client_payload.arch != 'true') && (github.event.client_payload.arch != 'True')}}"
echo "not Arch (4): ${{ fromJSON(github.event.client_payload.arch) }}"
echo "not Arch (5): ${{ !github.event.client_payload.arch && fromJSON(github.event.client_payload.arch) }}"
build:
runs-on: ubuntu-latest
needs: arguments
steps:
- name: Arch
run: |
echo "Arch: '${{ needs.arguments.outputs.arch }}'"
- name: If arch
if: ${{ needs.arguments.outputs.arch == 'true' }}
run: echo "arch"
- name: If not arch
if: ${{ needs.arguments.outputs.arch == 'false' }}
run: echo "not arch"
- name: List arguments
run: |
echo "Package: ${{ needs.arguments.outputs.package }}"
echo "Tag: ${{ needs.arguments.outputs.tag }}"
echo "Arch: ${{ needs.arguments.outputs.arch }}"
echo "Upload: ${{ needs.arguments.outputs.upload }}"
echo "Python version: ${{ needs.arguments.outputs.python_version }}"
echo "Numpy version: ${{ needs.arguments.outputs.numpy_version }}"
echo "Input channel: ${{ needs.arguments.outputs.channel_in }}"
echo "Output channel: ${{ needs.arguments.outputs.channel_out }}"
- name: Upload
if: ${{ github.event.client_payload.upload }}
run: echo "Uploading"