#******************************************************************************* # buidReleaseInclDocker.yml # # Interlisp webflow to build a Medley release and push it to github. # And to build a multiplatform Docker image for the release and push it to Docker Hub. # And to kickoff a build and deploy workflow for Medley-online within the online repo. # # This workflow just calls two reuseable workflows to the two task: # buildLoadup.yml and buildDocker.yml # # 2022-01-18 Frank Halasz # # Copyright 2022 by Interlisp.org # # ****************************************************************************** name: "Build/Push Release, Docker, OIO" # Run this workflow on ... on: schedule: - cron: '17 9 * * 3' workflow_dispatch: inputs: draft: description: "Mark this as a draft release" type: choice options: - 'false' - 'true' force: description: "Force build even if build already successfully completed for this commit" type: choice options: - 'false' - 'true' workflow_call: outputs: successful: description: "'True' if medley build completed successully" value: ${{ jobs.complete.outputs.build_successful }} inputs: draft: description: "Mark this as a draft release" required: false type: string default: 'false' force: description: "Force build even if build already successfully completed for this commit" required: false type: string default: 'false' defaults: run: shell: bash # Jobs that compose this workflow 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 }} secrets: inherit ###################################################################################### # Build Docker Image do_docker: needs: [inputs, do_release] uses: ./.github/workflows/buildDocker.yml with: draft: ${{ needs.inputs.outputs.draft }} force: ${{ needs.inputs.outputs.force }} secrets: inherit ###################################################################################### # Run HCFILES and push to files.interlisp.org do_HCFILES: needs: [inputs, do_release] uses: ./.github/workflows/doHCFILES.yml with: draft: ${{ needs.inputs.outputs.draft }} secrets: inherit ###################################################################################### # 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] steps: - name: trigger-oio-buildAndDeploy run: | if [ ! "${{ needs.inputs.outputs.draft }}" = "true" ] then gh workflow run buildAndDeployMedleyDocker.yml --repo Interlisp/online --ref main fi env: GITHUB_TOKEN: ${{ secrets.ONLINE_TOKEN }}