diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 8752edc..7522ec6 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -22,7 +22,7 @@ on: jobs: Prepare: - uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@r7 + uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@r8 MiKTeX: name: 🐋 Build MiKTeX base-image @@ -40,6 +40,9 @@ jobs: miktex_image_tag: ${{ steps.variables.outputs.miktex_image_tag }} miktex_image: ${{ steps.variables.outputs.miktex_image }} specific_tag_extension: ${{ steps.variables.outputs.specific_tag_extension }} + short_sha: ${{ steps.variables.outputs.short_sha }} + publish_official: ${{ steps.variables.outputs.publish_official }} + miktex_official_tag: ${{ steps.variables.outputs.miktex_official_tag }} miktex_version: ${{ steps.test.outputs.miktex_version }} steps: @@ -55,15 +58,26 @@ jobs: miktex_source_repository="${base_image_os_codename,,}" image_name="miktex" + + # Built, pushed and tested as 'ci-'; the 'Publish' job moves the official tags onto it. + short_sha="${GITHUB_SHA::7}" + if [[ "${{ needs.Prepare.outputs.is_release_tag}}" == "true" ]]; then - image_tag="latest" + official_tag="latest" specific_tag_extension="" + publish_official="true" elif [[ "${{ needs.Prepare.outputs.is_release_commit}}" == "true" ]]; then - image_tag="release" + official_tag="release" specific_tag_extension="-release" - else - image_tag="dev" + publish_official="true" + elif [[ "${GITHUB_REF}" == "refs/heads/dev" ]]; then + official_tag="dev" specific_tag_extension="-dev" + publish_official="true" + else + official_tag="" + specific_tag_extension="" + publish_official="false" fi tee "${GITHUB_OUTPUT}" < %-16s " "${1}" "${2}" + output="$(docker buildx imagetools create --tag "${namespace}/${name}:${2}" "${namespace}/${name}:${1}" 2>&1)" + if [[ $? -eq 0 ]]; then + printf -- "${ANSI_LIGHT_GREEN}[OK]${ANSI_NOCOLOR}\n" + else + printf -- "${ANSI_LIGHT_RED}[FAILED]${ANSI_NOCOLOR}\n" + printf -- "%s\n" "$(sed 's/^/ ↪ /g' <<< "${output}")" + printf -- "::error title=Publish::Promoting '%s' to '%s' failed.\n" "${1}" "${2}" + errorCount=$((errorCount + 1)) + fi + } + + printf -- "Promoting the images tested in this run:\n" + Promote "ci-${shortSHA}" "${{ needs.MiKTeX.outputs.miktex_official_tag }}" + for variant in "${variants[@]}"; do + Promote "ci-${variant}-${shortSHA}" "${variant}${extension}" + done + + if [[ ${errorCount} -ne 0 ]]; then + printf -- "${ANSI_LIGHT_RED}%s image(s) couldn't be promoted.${ANSI_NOCOLOR}\n" "${errorCount}" + exit 1 + fi + + printf -- "${ANSI_LIGHT_GREEN}Every image was promoted.${ANSI_NOCOLOR}\n" + TriggerTaggedRelease: - uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@r7 + uses: pyTooling/Actions/.github/workflows/TagReleaseCommit.yml@r8 needs: - Prepare - SanityCheck - Document - SanityCheck-Sphinx + - Publish if: needs.Prepare.outputs.is_release_commit == 'true' && github.event_name != 'schedule' permissions: contents: write # required for create tag @@ -460,12 +547,13 @@ jobs: secrets: inherit ReleasePage: - uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@r7 + uses: pyTooling/Actions/.github/workflows/PublishReleaseNotes.yml@r8 needs: - Prepare - SanityCheck - Document - SanityCheck-Sphinx + - Publish if: needs.Prepare.outputs.is_release_tag == 'true' permissions: contents: write diff --git a/Common.list b/Common.list index f3ef291..45665a2 100644 --- a/Common.list +++ b/Common.list @@ -38,6 +38,7 @@ eurosym float fmtcount # fontenc -> part of base installation +fontspec footmisc # footnote -> part of base installation fourier @@ -60,7 +61,7 @@ koma-script kvdefinekeys kvoptions kvsetkeys -l3backend +l3kernel l3packages lastpage latexmk @@ -76,12 +77,16 @@ lm lm-math # longtable -> part of base installation ltxcmds +lualibs +luaotfload +luatex85 makecell marvosym mdwtools mptopdf # multicol -> part of base installation multirow +newunicodechar noto noto-emoji notomath @@ -114,6 +119,7 @@ tcolorbox tocbibind todonotes translations +unicode-math uniquecounter url # varioref -> part of base installation diff --git a/Docker.buildx.sh b/Docker.buildx.sh index d25f25e..50f2e87 100755 --- a/Docker.buildx.sh +++ b/Docker.buildx.sh @@ -124,6 +124,7 @@ while IFS=$'\n' read -r line; do printf "%s\n" "${INDENT}${ANSI_GREEN}${line}${ANSI_NOCOLOR}" group=0 elif [[ "${line}" =~ $Pattern_ERROR ]]; then + Counter_Error=$((Counter_Error + 1)) printf "%s\n" "${INDENT}${ANSI_LIGHT_RED}${line}${ANSI_NOCOLOR}" elif [[ "${line}" =~ $Pattern_CANCELED ]]; then printf "%s\n" "${INDENT}${ANSI_LIGHT_RED}${line}${ANSI_NOCOLOR}" diff --git a/example/sphinx/requirements.txt b/example/sphinx/requirements.txt index 4ddfcf5..8bd4e57 100644 --- a/example/sphinx/requirements.txt +++ b/example/sphinx/requirements.txt @@ -9,6 +9,6 @@ docutils_stubs ~= 0.0.22 sphinx_rtd_theme ~= 3.1 # Sphinx Extenstions -sphinxcontrib-mermaid ~= 2.0 +sphinxcontrib-mermaid ~= 2.1 sphinx_design ~= 0.7.0 sphinx-copybutton >= 0.5.2