1
0
mirror of synced 2026-03-20 08:38:26 +00:00

WIP. Adding the ability to add a specific Maiko build version when when building Medley in Github workflows

This commit is contained in:
Frank Halasz
2026-03-08 22:40:40 -07:00
parent e66b434f98
commit fd5b5ef8f0
3 changed files with 59 additions and 67 deletions

View File

@@ -21,18 +21,18 @@ name: 'Build/Push Docker Image'
on:
workflow_dispatch:
inputs:
medley_release:
description: "Tag for Medley release to use"
type: string
default: "Latest"
draft:
description: "Mark this as a draft release"
type: choice
options:
- 'false'
- 'true'
type: boolean
default: false
force:
description: "Force build even if build already successfully completed for this commit"
type: choice
options:
- 'false'
- 'true'
type: boolean
default: false
workflow_call:
outputs:
@@ -40,16 +40,21 @@ on:
description: "'True' if medley docker build completed successully"
value: ${{ jobs.complete.outputs.build_successful }}
inputs:
medley_release:
description: "Tag for Medley release to use"
required: false
type: string
default: "Latest"
draft:
description: "Mark this as a draft release"
required: false
type: string
default: 'false'
type: boolean
default: false
force:
description: "Force build even if build already successfully completed for this commit"
required: false
type: string
default: 'false'
type: boolean
default: false
secrets:
DOCKER_USERNAME:
required: true
@@ -104,26 +109,28 @@ jobs:
needs: [sentry]
if: |
needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true'
|| inputs.force == true
steps:
# Checkout latest commit
- name: Checkout Medley
uses: actions/checkout@v4
# Find latest release (draft or normal)
# Find named or latest release
# and download its assets
- name: Download linux debs from latest (draft) release
- name: Download linux debs from named or latest release
run: |
tag=""
if [ "${{ inputs.draft }}" = "true" ];
then
tag=$(gh release list | grep Draft | head -n 1 | awk '{ print $3 }')
fi
if [ -z "${tag}" ];
if [ "${{ inputs.medley_release }}" = "Latest" ];
then
tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }')
fi
else
tag=$(echo "${{ inputs.medley_release }}" | sed 's/[[:space:]]//g')
set +e
gh release view ${tag} --repo ${{ github.repository_owner }}/medley
if [ $? -ne 0 ]; then echo "!!!!!!! Error: Cannot find Medley release ${tag}. Exiting."; exit 1; fi
set -e
fi
mkdir -p release_debs
gh release download ${tag} -D release_debs -p '*-linux-*.deb'
env:
@@ -142,7 +149,7 @@ jobs:
echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV}
echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV}
# regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# re gex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# Set repo env variables
- name: Set repo/docker env variables

View File

@@ -38,6 +38,9 @@ on:
successful:
description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }}
medley_release:
description: "Medley release tag for this run"
value:
inputs:
maiko_release:
description: "What maiko release to use"

View File

@@ -24,18 +24,18 @@ on:
workflow_dispatch:
inputs:
maiko_release:
description: "What maiko release to use"
type: string
default: 'Latest'
draft:
description: "Mark this as a draft release"
type: choice
options:
- 'false'
- 'true'
type: boolean
default: false
force:
description: "Force build even if build already successfully completed for this commit"
type: choice
options:
- 'false'
- 'true'
type: boolean
default: false
workflow_call:
outputs:
@@ -43,16 +43,21 @@ on:
description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }}
inputs:
maiko_release:
description: "What maiko release to use"
required: false
type: string
default: 'Latest'
draft:
description: "Mark this as a draft release"
required: false
type: string
default: 'false'
type: boolean
default: false
force:
description: "Force build even if build already successfully completed for this commit"
required: false
type: string
default: 'false'
type: boolean
default: false
defaults:
run:
@@ -63,39 +68,16 @@ defaults:
jobs:
######################################################################################
# Regularize the inputs so they can be referenced the same way whether they are
# the result of a workflow_dispatch or a workflow_call
inputs:
runs-on: ubuntu-24.04
outputs:
draft: ${{ steps.one.outputs.draft }}
force: ${{ steps.one.outputs.force }}
steps:
- id: one
run: >
if [ '${{ toJSON(inputs) }}' != '{}' ];
then
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
else
echo "draft=false" >> $GITHUB_OUTPUT;
echo "force=false" >> $GITHUB_OUTPUT;
fi
######################################################################################
# Build Loadup
do_release:
needs: inputs
uses: ./.github/workflows/buildLoadup.yml
with:
draft: ${{ needs.inputs.outputs.draft }}
force: ${{ needs.inputs.outputs.force }}
maiko_release: ${{ inputs.maiko_release }}
draft: ${{ inputs.draft }}
force: ${{ inputs.force }}
secrets: inherit
@@ -103,21 +85,21 @@ jobs:
# Build Docker Image
do_docker:
needs: [inputs, do_release]
needs: [do_release]
uses: ./.github/workflows/buildDocker.yml
with:
draft: ${{ needs.inputs.outputs.draft }}
force: ${{ needs.inputs.outputs.force }}
draft: ${{ inputs.draft }}
force: ${{ inputs.force }}
secrets: inherit
######################################################################################
# Run HCFILES and push to files.interlisp.org
do_HCFILES:
needs: [inputs, do_release]
needs: [do_release]
uses: ./.github/workflows/doHCFILES.yml
with:
draft: ${{ needs.inputs.outputs.draft }}
draft: ${{ inputs.draft }}
secrets: inherit
######################################################################################
@@ -125,11 +107,11 @@ jobs:
# Kickoff workflow in online repo to build and deploy Medley docker image to oio
do_oio:
runs-on: ubuntu-24.04
needs: [inputs, do_docker]
needs: [do_docker]
steps:
- name: trigger-oio-buildAndDeploy
run: |
if [ ! "${{ needs.inputs.outputs.draft }}" = "true" ]
if [ ! "${{ inputs.draft }}" = true ]
then
gh workflow run buildAndDeployMedleyDocker.yml --repo Interlisp/online --ref main
fi