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

Compare commits

..

1 Commits

Author SHA1 Message Date
Frank Halasz
8ca26f68cc Updating Medley docker image to Ubuntu 24.04 rather than 22.04 2026-02-25 22:03:13 -08:00
5 changed files with 144 additions and 158 deletions

View File

@@ -7,7 +7,7 @@
# #
# ****************************************************************************** # ******************************************************************************
FROM ubuntu:22.04 FROM ubuntu:24.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: boolean type: choice
default: false options:
- '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: boolean type: choice
default: false options:
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -40,21 +40,16 @@ 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: boolean type: string
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: boolean type: string
default: false default: 'false'
secrets: secrets:
DOCKER_USERNAME: DOCKER_USERNAME:
required: true required: true
@@ -82,7 +77,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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -109,27 +104,25 @@ 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@v6 uses: actions/checkout@v4
# Find named or latest release # Find latest release (draft or normal)
# and download its assets # and download its assets
- name: Download linux debs from named or latest release - name: Download linux debs from latest (draft) release
run: | run: |
tag="" tag=""
if [ "${{ inputs.github_release_tag }}" = "Latest" ]; if [ "${{ inputs.draft }}" = "true" ];
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'
@@ -137,7 +130,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 github release # just downloaded from the Medley latest 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: |
@@ -149,7 +142,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}
# re gex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$" # regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# Set repo env variables # Set repo env variables
- name: Set repo/docker env variables - name: Set repo/docker env variables
@@ -164,7 +157,7 @@ jobs:
platforms="linux/amd64" platforms="linux/amd64"
#,linux/arm64 #,linux/arm64
else else
docker_tags="${docker_image}:draft,${docker_image}:${MEDLEY_RELEASE#*-}_${MAIKO_RELEASE#*-}"" docker_tags="${docker_image}:draft"
platforms="linux/amd64" platforms="linux/amd64"
fi fi
echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV} echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV}
@@ -177,7 +170,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@v4 uses: docker/setup-qemu-action@v3
with: with:
platforms: linux/amd64 platforms: linux/amd64
# ,linux/arm64,linux/arm/v7 # ,linux/arm64,linux/arm/v7
@@ -185,11 +178,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@v4 uses: docker/setup-buildx-action@v3
# 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@v4 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
@@ -198,7 +191,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@v7 uses: docker/build-push-action@v5
with: with:
builder: ${{ steps.buildx.outputs.name }} builder: ${{ steps.buildx.outputs.name }}
build-args: | build-args: |
@@ -230,7 +223,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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -20,43 +20,35 @@ 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: boolean type: choice
default: false options:
- '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: boolean type: choice
default: false options:
- '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: boolean type: string
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: boolean type: string
default: false default: 'false'
secrets: secrets:
OIO_SSH_KEY: OIO_SSH_KEY:
required: true required: true
@@ -81,7 +73,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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -108,7 +100,6 @@ 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 }}
@@ -119,12 +110,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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -132,33 +123,35 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# 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, use maiko release tag from input or Latest # Get Maiko release information, retrieves the name of the latest (draft)
# 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.maiko_release }}" = "Latest" ]; if [ "${{ inputs.draft }}" = "true" ];
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: |
@@ -173,14 +166,11 @@ 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: |
crt="${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" echo "COMBINED_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" >>${GITHUB_ENV}
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;
@@ -203,7 +193,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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/notecards repository: ${{ github.repository_owner }}/notecards
path: ./notecards path: ./notecards
@@ -231,20 +221,21 @@ 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)
run: gh release delete ${{ env.GITHUB_RELEASE_TAG }} --cleanup-tag --yes || true uses: cb80/delrel@latest
env: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
continue-on-error: true
- name: Push the release - name: Push the release
id: push id: push
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
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.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
draft: ${{ inputs.draft }} draft: ${{ inputs.draft }}
prerelease: false prerelease: false
generateReleaseNotes: true generateReleaseNotes: true
@@ -252,7 +243,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@v7 uses: actions/upload-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -271,13 +262,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@v6 uses: actions/checkout@v4
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -288,14 +279,13 @@ 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@v8 uses: actions/download-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -310,13 +300,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.21.0 uses: ncipollo/release-action@v1
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.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -329,7 +319,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@v7 uses: actions/upload-artifact@v4
with: with:
name: medley-tar name: medley-tar
path: | path: |
@@ -348,7 +338,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:
@@ -359,7 +349,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -370,14 +360,13 @@ 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@v8 uses: actions/download-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -392,13 +381,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.21.0 uses: ncipollo/release-action@v1
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.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -420,7 +409,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 }}
@@ -429,7 +418,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# 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
@@ -437,8 +426,6 @@ 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 }}"
@@ -450,7 +437,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@v8 uses: actions/download-artifact@v4
with: with:
name: medley-tar name: medley-tar
path: installers/cygwin/ path: installers/cygwin/
@@ -500,11 +487,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.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }} artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }}
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -525,7 +512,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:
@@ -534,8 +521,6 @@ 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 }}"
@@ -545,7 +530,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Upload a dummy file to release # Upload a dummy file to release
@@ -555,11 +540,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.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: placeholder.txt artifacts: placeholder.txt
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -609,7 +594,7 @@ jobs:
# Remove placeholder.txt # Remove placeholder.txt
- name: Remove placeholder.txt - name: Remove placeholder.txt
run: | run: |
gh release delete-asset ${{ env.GITHUB_RELEASE_TAG }} placeholder.txt --yes || true gh release delete-asset ${{ env.MEDLEY_RELEASE_TAG }} placeholder.txt --yes
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -631,14 +616,14 @@ jobs:
steps: steps:
# Delete the tarballs artifact # Delete the tarballs artifact
- name: Delete tarballs artifact - name: Delete tarballs artifact
uses: geekyeggo/delete-artifact@v6 uses: geekyeggo/delete-artifact@v5
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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -24,22 +24,18 @@ 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: boolean type: choice
default: false options:
online: - 'false'
description: "Deploy this release online" - 'true'
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: boolean type: choice
default: false options:
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -47,26 +43,16 @@ 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: boolean type: string
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: boolean type: string
default: false default: 'false'
defaults: defaults:
run: run:
@@ -77,53 +63,75 @@ 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:
maiko_release: ${{ inputs.maiko_release }} draft: ${{ needs.inputs.outputs.draft }}
draft: ${{ inputs.draft }} force: ${{ needs.inputs.outputs.force }}
force: ${{ inputs.force }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Build Docker Image # Build Docker Image
do_docker: do_docker:
needs: [do_release] needs: [inputs, do_release]
uses: ./.github/workflows/buildDocker.yml uses: ./.github/workflows/buildDocker.yml
with: with:
github_release_tag: ${{ needs.do_release.outputs.github_release_tag }} draft: ${{ needs.inputs.outputs.draft }}
draft: ${{ inputs.draft }} force: ${{ needs.inputs.outputs.force }}
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: [do_release] needs: [inputs, do_release]
uses: ./.github/workflows/doHCFILES.yml uses: ./.github/workflows/doHCFILES.yml
with: with:
draft: ${{ inputs.draft }} draft: ${{ needs.inputs.outputs.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: [do_release, do_docker] needs: [inputs, do_docker]
steps: steps:
- name: trigger-oio-buildAndDeploy - name: trigger-oio-buildAndDeploy
run: | run: |
gh workflow run buildAndDeployMedleyDocker.yml \ if [ ! "${{ needs.inputs.outputs.draft }}" = "true" ]
--repo Interlisp/online --ref main \ then
-f github_release_tag=${{ needs.do_release.outputs.github_release_tag }} \ gh workflow run buildAndDeployMedleyDocker.yml --repo Interlisp/online --ref main
-f draft=${{ inputs.draft }} fi
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@v6 uses: actions/checkout@v4
- name: Checkout maiko - name: Checkout maiko
uses: actions/checkout@v6 uses: actions/checkout@v4
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@v6 uses: actions/checkout@v4
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@v6 uses: actions/checkout@v4
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@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/test repository: ${{ github.repository_owner }}/test
path: ./test path: ./test