1
0
mirror of synced 2026-03-21 00:58:00 +00:00

Compare commits

..

13 Commits

Author SHA1 Message Date
Frank Halasz
6d453b0a33 Change cb80/delrel@latest action over to equivalent gh cli call due to node 20 deprecation. Fix code to delete placeholder text in setting up downloads page. Both in buildLoadup.yml. 2026-03-20 17:54:06 -07:00
Frank Halasz
d8dabcabee in linux and macos jobs in buildLoadup, ensure that github_rease_tag in in the GITHUB_ENV. In buildReleaseInclDocker.yml fix typo in if: clause of deploy online job. 2026-03-20 17:09:11 -07:00
Frank Halasz
8091668506 Fix error in outputs clause in first job in buildMedleyinclDocker.yml 2026-03-20 16:32:01 -07:00
Frank Halasz
b76288a071 Fix error in creation of GITHUB_RELEASE_TAG in buildLoadup.yml 2026-03-20 16:09:17 -07:00
Frank Halasz
f1e75df438 Fix version# on github action ncipollo/release-action 2026-03-20 00:30:07 -07:00
Frank Halasz
183e96319e Fix version# on github action ncipollo/release-action 2026-03-20 00:08:23 -07:00
Frank Halasz
63e2461234 Fix spacing error is several workflow files 2026-03-19 22:57:16 -07:00
Frank Halasz
3779f392c6 Add inputs to all workflow that allow to use a specific maiko release. Add input to workflows that allow to use a specific medley release - e.g., for building a Medley docker image 2026-03-19 22:38:29 -07:00
Frank Halasz
fd5b5ef8f0 WIP. Adding the ability to add a specific Maiko build version when when building Medley in Github workflows 2026-03-08 22:40:40 -07:00
Frank Halasz
e66b434f98 buildLoadup Remove spaces from input Maiko release tag 2026-03-01 23:03:00 -08:00
Frank Halasz
d90358f410 Try again to fix handling of bad maiko tag 2026-03-01 21:40:29 -08:00
Frank Halasz
dd793d9b3b buildLoadup.yml Handle case better when given bad Maiko release tag 2026-03-01 21:31:09 -08:00
Frank Halasz
dc26dd8dd9 i buildLoadp.yml enabeer too specify tag for maiko-release to be used. 2026-03-01 20:46:16 -08:00
5 changed files with 158 additions and 144 deletions

View File

@@ -7,7 +7,7 @@
# #
# ****************************************************************************** # ******************************************************************************
FROM ubuntu:24.04 FROM ubuntu:22.04
ARG TARGETPLATFORM ARG TARGETPLATFORM
# Handle ARGs, ENV variables, and LABELs # Handle ARGs, ENV variables, and LABELs

View File

@@ -21,18 +21,18 @@ name: 'Build/Push Docker Image'
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
github_release_tag:
description: "Tag of Github Release to be used for this Medley Docker image"
type: string
default: "Latest"
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: choice type: boolean
options: default: false
- 'false'
- 'true'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: choice type: boolean
options: default: false
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -40,16 +40,21 @@ on:
description: "'True' if medley docker build completed successully" description: "'True' if medley docker build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
inputs: inputs:
github_release_tag:
description: "Tag of Github Release to be used for this Medley Docker image"
required: false
type: string
default: "Latest"
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: string type: boolean
default: 'false' default: false
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: string type: boolean
default: 'false' default: false
secrets: secrets:
DOCKER_USERNAME: DOCKER_USERNAME:
required: true required: true
@@ -77,7 +82,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -104,25 +109,27 @@ jobs:
needs: [sentry] needs: [sentry]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
steps: steps:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Find latest release (draft or normal) # Find named or latest release
# and download its assets # and download its assets
- name: Download linux debs from latest (draft) release - name: Download linux debs from named or latest release
run: | run: |
tag="" tag=""
if [ "${{ inputs.draft }}" = "true" ]; if [ "${{ inputs.github_release_tag }}" = "Latest" ];
then
tag=$(gh release list | grep Draft | head -n 1 | awk '{ print $3 }')
fi
if [ -z "${tag}" ];
then then
tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }') tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }')
else
tag=$(echo "${{ inputs.github_release_tag }}" | 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} on github Medley repo. Exiting."; exit 1; fi
set -e
fi fi
mkdir -p release_debs mkdir -p release_debs
gh release download ${tag} -D release_debs -p '*-linux-*.deb' gh release download ${tag} -D release_debs -p '*-linux-*.deb'
@@ -130,7 +137,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Get Maiko and Medley release information from name of deb files # Get Maiko and Medley release information from name of deb files
# just downloaded from the Medley latest release # just downloaded from the Medley github release
- name: Get info about Miako and Medley releases - name: Get info about Miako and Medley releases
id: release_info id: release_info
run: | run: |
@@ -142,7 +149,7 @@ jobs:
echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV} echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV}
echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV} echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV}
# regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$" # re gex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# Set repo env variables # Set repo env variables
- name: Set repo/docker env variables - name: Set repo/docker env variables
@@ -157,7 +164,7 @@ jobs:
platforms="linux/amd64" platforms="linux/amd64"
#,linux/arm64 #,linux/arm64
else else
docker_tags="${docker_image}:draft" docker_tags="${docker_image}:draft,${docker_image}:${MEDLEY_RELEASE#*-}_${MAIKO_RELEASE#*-}""
platforms="linux/amd64" platforms="linux/amd64"
fi fi
echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV} echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV}
@@ -170,7 +177,7 @@ jobs:
# Setup the Docker Machine Emulation environment. # Setup the Docker Machine Emulation environment.
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v4
with: with:
platforms: linux/amd64 platforms: linux/amd64
# ,linux/arm64,linux/arm/v7 # ,linux/arm64,linux/arm/v7
@@ -178,11 +185,11 @@ jobs:
# Setup the Docker Buildx funtion # Setup the Docker Buildx funtion
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v4
# Login into DockerHub - required to store the created image # Login into DockerHub - required to store the created image
- name: Login to DockerHub - name: Login to DockerHub
uses: docker/login-action@v3 uses: docker/login-action@v4
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
@@ -191,7 +198,7 @@ jobs:
# checked out and the release tars just downloaded. # checked out and the release tars just downloaded.
# Push the result to Docker Hub # Push the result to Docker Hub
- name: Build Docker Image for Push to Docker Hub - name: Build Docker Image for Push to Docker Hub
uses: docker/build-push-action@v5 uses: docker/build-push-action@v7
with: with:
builder: ${{ steps.buildx.outputs.name }} builder: ${{ steps.buildx.outputs.name }}
build-args: | build-args: |
@@ -223,7 +230,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -20,35 +20,43 @@ name: Build/Push Medley Release
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
maiko_release:
description: "What maiko release to use"
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: choice type: boolean
options: default: false
- 'false'
- 'true'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: choice type: boolean
options: default: false
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
successful: successful:
description: "'True' if medley build completed successully" description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
github_release_tag:
description: "Github Release tag for release created in this run"
value: ${{ jobs.loadup.outputs.github_release_tag }}
inputs: inputs:
maiko_release:
description: "What maiko release to use"
required: false
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: string type: boolean
default: 'false' default: false
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: string type: boolean
default: 'false' default: false
secrets: secrets:
OIO_SSH_KEY: OIO_SSH_KEY:
required: true required: true
@@ -73,7 +81,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -100,6 +108,7 @@ jobs:
outputs: outputs:
combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }} combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }}
github_release_tag: ${{ steps.job_outputs.outputs.GITHUB_RELEASE_TAG }}
medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }} medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }}
medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }} medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }}
debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }} debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }}
@@ -110,12 +119,12 @@ jobs:
needs: [sentry] needs: [sentry]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -123,35 +132,33 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Setup release tag # Setup release tag
- name: Setup Release Tag - name: Setup Release Tag
id: tag id: tag
uses: ./../actions/release-tag-action uses: ./../actions/release-tag-action
# Get Maiko release information, retrieves the name of the latest (draft) # Get Maiko release information, use maiko release tag from input or Latest
# release. Used to download the correct Maiko release # release. Used to download the correct Maiko release
# Find latest release (draft or normal)
- name: Get maiko release information - name: Get maiko release information
id: maiko id: maiko
run: | run: |
tag="" tag=""
if [ "${{ inputs.draft }}" = "true" ]; if [ "${{ inputs.maiko_release }}" = "Latest" ];
then
gh release list --repo ${{ github.repository_owner }}/maiko | grep Draft >/tmp/releases-$$
if [ $? -eq 0 ];
then
tag=$(head -n 1 /tmp/releases-$$ | awk '{ print $3 }')
fi
fi
if [ -z "${tag}" ];
then then
tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }') tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }')
else
tag=$(echo "${{ inputs.maiko_release }}" | sed 's/[[:space:]]//g')
set +e
gh release view ${tag} --repo ${{ github.repository_owner }}/maiko
if [ $? -ne 0 ]; then echo "!!!!!!! Error: Cannot find Maiko release ${tag}. Exiting."; exit 1; fi
set -e
fi fi
echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT} echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT}
env: env:
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }} GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
# Setup environment variables & establish job outputs # Setup environment variables & establish job outputs
- name: Setup Environment Variables - name: Setup Environment Variables
run: | run: |
@@ -166,11 +173,14 @@ jobs:
echo "MAIKO_SHORT_RELEASE_TAG=${MAIKO_RELEASE_TAG#maiko-}" >>${GITHUB_ENV} echo "MAIKO_SHORT_RELEASE_TAG=${MAIKO_RELEASE_TAG#maiko-}" >>${GITHUB_ENV}
- name: Even More Environment Variables - name: Even More Environment Variables
run: | run: |
echo "COMBINED_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" >>${GITHUB_ENV} crt="${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}"
echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=medley-${crt}" >>${GITHUB_ENV}
- name: Establish job outputs - name: Establish job outputs
id: job_outputs id: job_outputs
run: | run: |
echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "GITHUB_RELEASE_TAG=${GITHUB_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MAIKO_RELEASE_TAG=${MAIKO_RELEASE_TAG}" >> $GITHUB_OUTPUT; echo "MAIKO_RELEASE_TAG=${MAIKO_RELEASE_TAG}" >> $GITHUB_OUTPUT;
@@ -193,7 +203,7 @@ jobs:
# Checkout Notecards and tar it in the tarballsdir # Checkout Notecards and tar it in the tarballsdir
- name: Checkout Notecards - name: Checkout Notecards
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/notecards repository: ${{ github.repository_owner }}/notecards
path: ./notecards path: ./notecards
@@ -221,21 +231,20 @@ jobs:
# Push the release up to github releases # Push the release up to github releases
- name: Delete existing release with same tag (if any) - name: Delete existing release with same tag (if any)
uses: cb80/delrel@latest run: gh release delete ${{ env.GITHUB_RELEASE_TAG }} --cleanup-tag --yes || true
with: env:
tag: ${{ env.MEDLEY_RELEASE_TAG }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true
- name: Push the release - name: Push the release
id: push id: push
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1.21.0
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
# ${{ env.TARBALL_DIR }}/notecards.tgz, # ${{ env.TARBALL_DIR }}/notecards.tgz,
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz, ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz,
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz
tag: ${{ env.MEDLEY_RELEASE_TAG }} tag: ${{ env.GITHUB_RELEASE_TAG }}
draft: ${{ inputs.draft }} draft: ${{ inputs.draft }}
prerelease: false prerelease: false
generateReleaseNotes: true generateReleaseNotes: true
@@ -243,7 +252,7 @@ jobs:
# Save the tarball directory for subsequent jobs # Save the tarball directory for subsequent jobs
- name: Save tarballs - name: Save tarballs
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -262,13 +271,13 @@ jobs:
needs: [sentry, loadup] needs: [sentry, loadup]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
steps: steps:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -279,13 +288,14 @@ jobs:
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \ echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \
>>${GITHUB_ENV} >>${GITHUB_ENV}
echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=${{ needs.loadup.outputs.github_release_tag }}" >> ${GITHUB_ENV}
# Create taball dir # Create taball dir
- run: mkdir -p ${TARBALL_DIR} - run: mkdir -p ${TARBALL_DIR}
# Get the tarballs # Get the tarballs
- name: Get tarballs - name: Get tarballs
uses: actions/download-artifact@v4 uses: actions/download-artifact@v8
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -300,13 +310,13 @@ jobs:
# Push the debs and tgz up to github releases # Push the debs and tgz up to github releases
- name: Push the release - name: Push the release
id: push_release id: push_release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1.21.0
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
${{ env.DEBS_DIR }}/*.deb, ${{ env.DEBS_DIR }}/*.deb,
${{ env.TARS_DIR }}/*.tgz ${{ env.TARS_DIR }}/*.tgz
tag: ${{ env.MEDLEY_RELEASE_TAG }} tag: ${{ env.GITHUB_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -319,7 +329,7 @@ jobs:
mv medley-full-linux-x86_64-*.tgz medley.tgz mv medley-full-linux-x86_64-*.tgz medley.tgz
- name: Save medley tar for use in cygwin installers - name: Save medley tar for use in cygwin installers
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: medley-tar name: medley-tar
path: | path: |
@@ -338,7 +348,7 @@ jobs:
needs: [sentry, loadup] needs: [sentry, loadup]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
# if: false # if: false
defaults: defaults:
@@ -349,7 +359,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -360,13 +370,14 @@ jobs:
echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV} echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV}
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" >>${GITHUB_ENV} echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" >>${GITHUB_ENV}
echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=${{ needs.loadup.outputs.github_release_tag }}" >> ${GITHUB_ENV}
# Create tarball dir # Create tarball dir
- run: mkdir -p ${TARBALL_DIR} - run: mkdir -p ${TARBALL_DIR}
# Get the tarballs # Get the tarballs
- name: Get tarballs - name: Get tarballs
uses: actions/download-artifact@v4 uses: actions/download-artifact@v8
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -381,13 +392,13 @@ jobs:
# Push the .dmg and .zip up to github releases # Push the .dmg and .zip up to github releases
- name: Push the release - name: Push the release
id: push_release id: push_release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1.21.0
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
# 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg, # 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg,
${{ env.ARTIFACTS_DIR }}/*.zip ${{ env.ARTIFACTS_DIR }}/*.zip
tag: ${{ env.MEDLEY_RELEASE_TAG }} tag: ${{ env.GITHUB_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -409,7 +420,7 @@ jobs:
needs: [sentry, loadup, linux_installer] needs: [sentry, loadup, linux_installer]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
outputs: outputs:
cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }} cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }}
@@ -418,7 +429,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Store the values output from loadup job as environment variables # Store the values output from loadup job as environment variables
- name: Environment Variables - name: Environment Variables
@@ -426,6 +437,8 @@ jobs:
run: | run: |
$crt="${{ needs.loadup.outputs.combined_release_tag }}" $crt="${{ needs.loadup.outputs.combined_release_tag }}"
echo "COMBINED_RELEASE_TAG=$crt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append echo "COMBINED_RELEASE_TAG=$crt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$grt="${{ needs.loadup.outputs.github_release_tag }}"
echo "GITHUB_RELEASE_TAG=$grt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$mrt="${{ needs.loadup.outputs.medley_release_tag }}" $mrt="${{ needs.loadup.outputs.medley_release_tag }}"
echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" $msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
@@ -437,7 +450,7 @@ jobs:
# Retrieve medley tars from artifact store # Retrieve medley tars from artifact store
- name: Retrieve medley tar - name: Retrieve medley tar
uses: actions/download-artifact@v4 uses: actions/download-artifact@v8
with: with:
name: medley-tar name: medley-tar
path: installers/cygwin/ path: installers/cygwin/
@@ -487,11 +500,11 @@ jobs:
# Upload windows installer to release # Upload windows installer to release
- name: Upload windows installer to release - name: Upload windows installer to release
id: push id: push
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1.21.0
with: with:
allowUpdates: true allowUpdates: true
artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }} artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }}
tag: ${{ env.MEDLEY_RELEASE_TAG }} tag: ${{ env.GITHUB_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -512,7 +525,7 @@ jobs:
needs: [sentry, loadup, linux_installer, macos_installer, cygwin_installer] needs: [sentry, loadup, linux_installer, macos_installer, cygwin_installer]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == 'true' || inputs.force == true
steps: steps:
@@ -521,6 +534,8 @@ jobs:
run: | run: |
crt="${{ needs.loadup.outputs.combined_release_tag }}" crt="${{ needs.loadup.outputs.combined_release_tag }}"
echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV} echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
grt="${{ needs.loadup.outputs.github_release_tag }}"
echo "GITHUB_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
mrt="${{ needs.loadup.outputs.medley_release_tag }}" mrt="${{ needs.loadup.outputs.medley_release_tag }}"
echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV} echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV}
msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
@@ -530,7 +545,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v4 uses: actions/checkout@v6
# Upload a dummy file to release # Upload a dummy file to release
@@ -540,11 +555,11 @@ jobs:
- run: echo "placeholder" >placeholder.txt - run: echo "placeholder" >placeholder.txt
- name: Upload windows placeholder.txt to release - name: Upload windows placeholder.txt to release
id: pushph id: pushph
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1.21.0
with: with:
allowUpdates: true allowUpdates: true
artifacts: placeholder.txt artifacts: placeholder.txt
tag: ${{ env.MEDLEY_RELEASE_TAG }} tag: ${{ env.GITHUB_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -594,7 +609,7 @@ jobs:
# Remove placeholder.txt # Remove placeholder.txt
- name: Remove placeholder.txt - name: Remove placeholder.txt
run: | run: |
gh release delete-asset ${{ env.MEDLEY_RELEASE_TAG }} placeholder.txt --yes gh release delete-asset ${{ env.GITHUB_RELEASE_TAG }} placeholder.txt --yes || true
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -616,14 +631,14 @@ jobs:
steps: steps:
# Delete the tarballs artifact # Delete the tarballs artifact
- name: Delete tarballs artifact - name: Delete tarballs artifact
uses: geekyeggo/delete-artifact@v5 uses: geekyeggo/delete-artifact@v6
with: with:
name: tarballs name: tarballs
failOnError: false failOnError: false
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -24,18 +24,22 @@ on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
maiko_release:
description: "What maiko release to use"
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: choice type: boolean
options: default: false
- 'false' online:
- 'true' description: "Deploy this release online"
type: boolean
default: true
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: choice type: boolean
options: default: false
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -43,16 +47,26 @@ on:
description: "'True' if medley build completed successully" description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
inputs: inputs:
maiko_release:
description: "What maiko release to use"
required: false
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: string type: boolean
default: 'false' default: false
online:
description: "Deploy this release online"
required: false
type: boolean
default: true
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: string type: boolean
default: 'false' default: false
defaults: defaults:
run: run:
@@ -63,75 +77,53 @@ defaults:
jobs: 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 # Build Loadup
do_release: do_release:
needs: inputs
uses: ./.github/workflows/buildLoadup.yml uses: ./.github/workflows/buildLoadup.yml
with: with:
draft: ${{ needs.inputs.outputs.draft }} maiko_release: ${{ inputs.maiko_release }}
force: ${{ needs.inputs.outputs.force }} draft: ${{ inputs.draft }}
force: ${{ inputs.force }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Build Docker Image # Build Docker Image
do_docker: do_docker:
needs: [inputs, do_release] needs: [do_release]
uses: ./.github/workflows/buildDocker.yml uses: ./.github/workflows/buildDocker.yml
with: with:
draft: ${{ needs.inputs.outputs.draft }} github_release_tag: ${{ needs.do_release.outputs.github_release_tag }}
force: ${{ needs.inputs.outputs.force }} draft: ${{ inputs.draft }}
force: ${{ inputs.force }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Run HCFILES and push to files.interlisp.org # Run HCFILES and push to files.interlisp.org
do_HCFILES: do_HCFILES:
needs: [inputs, do_release] needs: [do_release]
uses: ./.github/workflows/doHCFILES.yml uses: ./.github/workflows/doHCFILES.yml
with: with:
draft: ${{ needs.inputs.outputs.draft }} draft: ${{ inputs.draft }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Kickoff workflow in online repo to build and deploy Medley docker image to oio # Kickoff workflow in online repo to build and deploy Medley docker image to oio
do_oio: do_oio:
if: ${{ inputs.online == true }}
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
needs: [inputs, do_docker] needs: [do_release, do_docker]
steps: steps:
- name: trigger-oio-buildAndDeploy - name: trigger-oio-buildAndDeploy
run: | run: |
if [ ! "${{ needs.inputs.outputs.draft }}" = "true" ] gh workflow run buildAndDeployMedleyDocker.yml \
then --repo Interlisp/online --ref main \
gh workflow run buildAndDeployMedleyDocker.yml --repo Interlisp/online --ref main -f github_release_tag=${{ needs.do_release.outputs.github_release_tag }} \
fi -f draft=${{ inputs.draft }}
env: env:
GITHUB_TOKEN: ${{ secrets.ONLINE_TOKEN }} GITHUB_TOKEN: ${{ secrets.ONLINE_TOKEN }}

View File

@@ -50,28 +50,28 @@ jobs:
steps: steps:
- name: Checkout Medley repo - name: Checkout Medley repo
uses: actions/checkout@v4 uses: actions/checkout@v6
- name: Checkout maiko - name: Checkout maiko
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/maiko repository: ${{ github.repository_owner }}/maiko
path: ./maiko path: ./maiko
- name: Checkout notecards - name: Checkout notecards
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/notecards repository: ${{ github.repository_owner }}/notecards
path: ./notecards path: ./notecards
- name: Checkout loops - name: Checkout loops
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/loops repository: ${{ github.repository_owner }}/loops
path: ./loops path: ./loops
- name: Checkout test - name: Checkout test
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
repository: ${{ github.repository_owner }}/test repository: ${{ github.repository_owner }}/test
path: ./test path: ./test