WIP. Adding the ability to add a specific Maiko build version when when building Medley in Github workflows
This commit is contained in:
51
.github/workflows/buildDocker.yml
vendored
51
.github/workflows/buildDocker.yml
vendored
@@ -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
|
||||
|
||||
3
.github/workflows/buildLoadup.yml
vendored
3
.github/workflows/buildLoadup.yml
vendored
@@ -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"
|
||||
|
||||
72
.github/workflows/buildReleaseInclDocker.yml
vendored
72
.github/workflows/buildReleaseInclDocker.yml
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user