Skip to content

Release 1.28.9

Release 1.28.9 #1613

Workflow file for this run

name: Platform Image Tests
on:
push:
branches:
- main-platform1
- stable**
- release**
pull_request:
branches:
- main-platform1
- stable**
- release**
workflow_dispatch:
inputs:
last_release:
description: "Test backwards compatibility with platform ver [semvar]"
required: false
piwind_branch:
description: "Check Results from Piwind branch [git ref]"
required: true
default: 'main'
pytest_options:
description: "Pytest optional args [-k <test_name>]"
required: false
cve_severity:
description: 'Severities of vulnerabilities to scanned for [LOW, MEDIUM, HIGH, CRITICAL, SKIP]'
required: false
oasislmf_branch:
description: 'If set, pip install oasislmf branch [git ref]'
required: false
ods_branch:
description: 'If set, pip install ods-tools branch [git ref]'
required: false
env:
pre_release: 'true' # look for pre-release when testing last released platform version
semver_major: '1' # Search for published images but limited to {semvar_major}.x.x
semver_minor: '28' # Search for published images but limited to x.{semvar_minor}.x
jobs:
build_images:
uses: ./.github/workflows/build-images.yml
secrets: inherit
with:
docker_push: true
ignore_unfixed: true
cve_severity: ${{ github.event_name != 'workflow_dispatch' && 'CRITICAL,HIGH' || inputs.cve_severity }}
oasislmf_branch: ${{ github.event_name != 'workflow_dispatch' && 'stable/1.28.x' || inputs.oasislmf_branch }}
ods_branch: ${{ github.event_name != 'workflow_dispatch' && 'stable/3.1.x' || inputs.ods_branch }}
setup:
runs-on: ubuntu-latest
needs: [build_images]
outputs:
pytest_opts: ${{ steps.pytest.outputs.opts }}
piwind_branch: ${{ steps.piwind.outputs.branch }}
release_tag: ${{ steps.released_images.outputs.prev_release_tag }}
release_stable_15: ${{ steps.released_images.outputs.stable_15 }}
release_stable_23: ${{ steps.released_images.outputs.stable_23 }}
release_stable_27: ${{ steps.released_images.outputs.stable_27 }}
build_server_img: ${{ steps.built_images.outputs.server_img }}
build_server_tag: ${{ steps.built_images.outputs.server_tag }}
build_worker_img: ${{ steps.built_images.outputs.worker_img }}
build_worker_tag: ${{ steps.built_images.outputs.worker_tag }}
build_deb_worker_img: ${{ steps.built_images.outputs.deb_worker_img }}
build_deb_worker_tag: ${{ steps.built_images.outputs.deb_worker_tag }}
steps:
- name: Checkout Platform
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Load latest release tag
id: released_images
run: |
# Find the latest release tag only from current branch
if [[ "${{ github.ref_name }}" == backports/ ]]; then
tag=$( ./scripts/find_release.sh -p "${{ env.pre_release }}")
echo "prev_release_tag=$tag" >> $GITHUB_OUTPUT
# Find tags release accross all branches, limited to matching semver
elif [[ -z "${{ inputs.last_release }}" ]]; then
tag=$( ./scripts/find_latest.sh -j "${{ env.semver_major }}" -i "${{ env.semver_minor }}" )
echo "prev_release_tag=$tag" >> $GITHUB_OUTPUT
# Don't search, use the given input
else
echo "prev_release_tag=${{ inputs.last_release }}" >> $GITHUB_OUTPUT
fi
# Find latest LTS from each stable branch
stable_1_15=$( ./scripts/find_latest.sh -j 1 -i 15 )
echo "stable_15=$stable_1_15" >> $GITHUB_OUTPUT
stable_1_23=$( ./scripts/find_latest.sh -j 1 -i 23 )
echo "stable_23=$stable_1_23" >> $GITHUB_OUTPUT
stable_1_27=$( ./scripts/find_latest.sh -j 1 -i 27 )
echo "stable_27=$stable_1_27" >> $GITHUB_OUTPUT
- name: Select PiWind branch
id: piwind
run: |
if [[ -z "${{ inputs.piwind_branch }}" ]]; then
BRANCH='stable/1.28.x'
else
BRANCH=${{ inputs.piwind_branch }}
fi
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
- name: Select Pytest Options
id: pytest
run: |
if [[ -z "${{ inputs.pytest_options }}" ]]; then
echo "opts='-k all_output'" >> $GITHUB_OUTPUT
else
echo "opts=${{ inputs.pytest_options }}" >> $GITHUB_OUTPUT
fi
# Split ouput strings from build job
- name: Load built images
id: built_images
run: |
server_img=$(echo ${{ needs.build_images.outputs.server_image }} | awk '{split($0,a,":"); print a[1];}')
server_tag=$(echo ${{ needs.build_images.outputs.server_image }} | awk '{split($0,a,":"); print a[2];}')
echo "server_img=$server_img" >> $GITHUB_OUTPUT
echo "server_tag=$server_tag" >> $GITHUB_OUTPUT
worker_img=$(echo ${{ needs.build_images.outputs.worker_image }} | awk '{split($0,a,":"); print a[1];}')
worker_tag=$(echo ${{ needs.build_images.outputs.worker_image }} | awk '{split($0,a,":"); print a[2];}')
echo "worker_img=$worker_img" >> $GITHUB_OUTPUT
echo "worker_tag=$worker_tag" >> $GITHUB_OUTPUT
deb_worker_img=$(echo ${{ needs.build_images.outputs.worker_deb_image }} | awk '{split($0,a,":"); print a[1];}')
deb_worker_tag=$(echo ${{ needs.build_images.outputs.worker_deb_image }} | awk '{split($0,a,":"); print a[2];}')
echo "deb_worker_img=$deb_worker_img" >> $GITHUB_OUTPUT
echo "deb_worker_tag=$deb_worker_tag" >> $GITHUB_OUTPUT
worker_compatibility:
name: Test last worker (${{ needs.setup.outputs.release_tag }})
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: ${{ needs.setup.outputs.piwind_branch }}
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: 'coreoasis/model_worker'
worker_tag: ${{ needs.setup.outputs.release_tag }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: "_worker-${{ needs.setup.outputs.release_tag }}"
stable_compatibility_15:
name: Test stable worker (${{ needs.setup.outputs.release_stable_15 }})
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: 'stable/1.15.x'
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: 'coreoasis/model_worker'
worker_tag: ${{ needs.setup.outputs.release_stable_15 }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: "_worker-${{ needs.setup.outputs.release_stable_15 }}"
stable_compatibility_23:
name: Test stable worker (${{ needs.setup.outputs.release_stable_23 }})
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: 'stable/1.23.x'
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: 'coreoasis/model_worker'
worker_tag: ${{ needs.setup.outputs.release_stable_23 }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: "_worker-${{ needs.setup.outputs.release_stable_23 }}"
stable_compatibility_27:
name: Test stable worker (${{ needs.setup.outputs.release_stable_27 }})
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: 'stable/1.27.x'
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: 'coreoasis/model_worker'
worker_tag: ${{ needs.setup.outputs.release_stable_27 }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: "_worker-${{ needs.setup.outputs.release_stable_27 }}"
worker_debian:
name: Worker Debian
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: ${{ needs.setup.outputs.piwind_branch }}
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: ${{ needs.setup.outputs.build_deb_worker_img }}
worker_tag: ${{ needs.setup.outputs.build_deb_worker_tag }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: '_worker-debian'
server_compatibility:
name: Test last Server (${{ needs.setup.outputs.release_tag }})
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: ${{ needs.setup.outputs.piwind_branch }}
server_image: 'coreoasis/api_server'
server_tag: ${{ needs.setup.outputs.release_tag }}
worker_image: ${{ needs.setup.outputs.build_worker_img }}
worker_tag: ${{ needs.setup.outputs.build_worker_tag }}
debug_mode: 1
pytest_opts: ${{ needs.setup.outputs.pytest_opts }}
storage_suffix: "_server-${{ needs.setup.outputs.release_tag }}"
storage_s3:
name: Storage Compatibility (S3)
secrets: inherit
needs: [setup]
uses: OasisLMF/OasisPiWind/.github/workflows/integration.yml@main
with:
piwind_branch: ${{ needs.setup.outputs.piwind_branch }}
server_image: ${{ needs.setup.outputs.build_server_img }}
server_tag: ${{ needs.setup.outputs.build_server_tag }}
worker_image: ${{ needs.setup.outputs.build_worker_img }}
worker_tag: ${{ needs.setup.outputs.build_worker_tag }}
debug_mode: 1
pytest_opts: "--docker-compose=./docker/s3.docker-compose.yml ${{ needs.setup.outputs.pytest_opts }}"
storage_suffix: '_s3'