diff --git a/.github/workflows/deploy-docker-all.yml b/.github/workflows/deploy-docker-all.yml index a696da31..144fc615 100755 --- a/.github/workflows/deploy-docker-all.yml +++ b/.github/workflows/deploy-docker-all.yml @@ -6,8 +6,11 @@ # upload this workflow to both the `main` branch of the tvapp2 repository # @secrets secrets.ADMINSERV_GPG_KEY_ASC gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK # secrets.ADMINSERV_GPG_PASSPHRASE gpg private key passphrase -# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) with package:write permission -# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES Discord webhook to report releases from github to discord +# secrets.ORG_BINARYNINJA_TOKEN github personal access token (fine-grained) +# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) +# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN dockerhub secret +# secrets.ORG_BINARYNINJA_GITEA_TOKEN gitea personal access token (classic) with package:write permission +# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES discord webhook to report releases from github to discord # # name: "📦 Deploy › Docker › All" @@ -395,6 +398,31 @@ jobs: username: ${{ env.IMAGE_GHCR_USERNAME }} password: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + # # + # Release › Github › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_gh_readme_cache.outputs.content }} + # # + + - name: '📄 Cache README.md' + id: task_release_gh_readme_cache + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + script: | + 'use strict' + + const { promises: fs } = require('fs') + + const main = async () => { + const path = "README.md" + let content = await fs.readFile(path, 'utf8') + + core.setOutput('content', content) + } + + main().catch(err => core.setFailed(err.message)) + # # # Release › Github › Meta # @@ -452,6 +480,57 @@ jobs: org.opencontainers.image.registry=github org.tvapp2.image.build-version="Version:- ${{ env.IMAGE_VERSION }} Date:- ${{ env.NOW_DOCKER_LABEL }}" + # # + # Release › Github › Build and Push › Amd64 + # # + + - name: '📦 Build & Push (linux/amd64)' + id: task_release_gh_push_amd64 + uses: docker/build-push-action@v6 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + context: . + file: Dockerfile + platforms: linux/amd64 + push: ${{ github.event_name != 'pull_request' }} + labels: ${{ steps.task_release_gh_meta.outputs.labels }} + tags: | + ${{ steps.task_release_gh_meta.outputs.tags }} + provenance: false + sbom: false + build-args: |- + ARCH=amd64 + VERSION=${{ env.IMAGE_VERSION }} + BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + + # # + # Release › Github › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_gh_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_gh_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Github › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_gh_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Github › Build and Push › Arm64 # # @@ -476,27 +555,32 @@ jobs: BUILDDATE=${{ env.NOW_DOCKER_LABEL }} # # - # Release › Github › Build and Push › Amd64 + # Release › Github › Export Digest › Arm64 # # - - name: '📦 Build & Push (linux/amd64)' - id: task_release_gh_push_amd64 - uses: docker/build-push-action@v6 + - name: '📄 Export Digest (linux/arm64)' + id: task_release_gh_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_gh_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Github › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_gh_digest_upload_arm64 + uses: actions/upload-artifact@v4 if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) with: - context: . - file: Dockerfile - platforms: linux/amd64 - push: ${{ github.event_name != 'pull_request' }} - labels: ${{ steps.task_release_gh_meta.outputs.labels }} - tags: | - ${{ steps.task_release_gh_meta.outputs.tags }} - provenance: false - sbom: false - build-args: |- - ARCH=amd64 - VERSION=${{ env.IMAGE_VERSION }} - BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 # # # Release › Github › Push Manifest @@ -773,6 +857,31 @@ jobs: username: ${{ env.IMAGE_DOCKERHUB_USERNAME }} password: ${{ secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN }} + # # + # Release › Dockerhub › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_dh_readme_cache.outputs.content }} + # # + + - name: '📄 Cache README.md' + id: task_release_dh_readme_cache + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + script: | + 'use strict' + + const { promises: fs } = require('fs') + + const main = async () => { + const path = "README.md" + let content = await fs.readFile(path, 'utf8') + + core.setOutput('content', content) + } + + main().catch(err => core.setFailed(err.message)) + # # # Release › Dockerhub › Meta # @@ -853,6 +962,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Dockerhub › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_dh_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_dh_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Dockerhub › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_dh_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Dockerhub › Build and Push › Arm64 # # @@ -876,6 +1013,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Dockerhub › Export Digest › Arm64 + # # + + - name: '📄 Export Digest (linux/arm64)' + id: task_release_dh_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_dh_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Dockerhub › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_dh_digest_upload_arm64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Dockerhub › Push Manifest # # @@ -1138,6 +1303,31 @@ jobs: username: ${{ env.IMAGE_GITEA_USERNAME }} password: ${{ secrets.ORG_BINARYNINJA_GITEA_TOKEN }} + # # + # Release › Gitea › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_gi_readme_cache.outputs.content }} + # # + + - name: '📄 Cache README.md' + id: task_release_gi_readme_cache + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + script: | + 'use strict' + + const { promises: fs } = require('fs') + + const main = async () => { + const path = "README.md" + let content = await fs.readFile(path, 'utf8') + + core.setOutput('content', content) + } + + main().catch(err => core.setFailed(err.message)) + # # # Release › Gitea › Meta › amd64 # @@ -1329,6 +1519,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Gitea › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_gi_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_gi_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Gitea › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_gi_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Gitea › Build and Push › Arm64 # # @@ -1352,6 +1570,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Gitea › Export Digest › Arm64 + # # + + - name: '📄 Export Digest (linux/arm64)' + id: task_release_gi_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_gi_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Gitea › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_gi_digest_upload_arm64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Gitea › Push Manifest # # diff --git a/.github/workflows/deploy-docker-dockerhub.yml b/.github/workflows/deploy-docker-dockerhub.yml index f9b90a85..e6e50ea9 100755 --- a/.github/workflows/deploy-docker-dockerhub.yml +++ b/.github/workflows/deploy-docker-dockerhub.yml @@ -6,8 +6,11 @@ # upload this workflow to both the `main` branch of the tvapp2 repository # @secrets secrets.ADMINSERV_GPG_KEY_ASC gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK # secrets.ADMINSERV_GPG_PASSPHRASE gpg private key passphrase -# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN github personal access token (classic) with package:write permission -# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES Discord webhook to report releases from github to discord +# secrets.ORG_BINARYNINJA_TOKEN github personal access token (fine-grained) +# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) +# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN dockerhub secret +# secrets.ORG_BINARYNINJA_GITEA_TOKEN gitea personal access token (classic) with package:write permission +# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES discord webhook to report releases from github to discord # # name: "📦 Deploy › Docker › Dockerhub" @@ -326,6 +329,31 @@ jobs: username: ${{ env.IMAGE_DOCKERHUB_USERNAME }} password: ${{ secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN }} + # # + # Release › Dockerhub › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_dh_readme_cache.outputs.content }} + # # + + - name: '📄 Cache README.md' + id: task_release_dh_readme_cache + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + script: | + 'use strict' + + const { promises: fs } = require('fs') + + const main = async () => { + const path = "README.md" + let content = await fs.readFile(path, 'utf8') + + core.setOutput('content', content) + } + + main().catch(err => core.setFailed(err.message)) + # # # Release › Dockerhub › Meta # @@ -406,6 +434,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Dockerhub › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_dh_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_dh_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Dockerhub › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_dh_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Dockerhub › Build and Push › Arm64 # # @@ -429,6 +485,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Dockerhub › Export Digest › Arm64 + # # + + - name: '📄 Export Digest (linux/arm64)' + id: task_release_dh_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_dh_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Dockerhub › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_dh_digest_upload_arm64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Dockerhub › Push Manifest # # diff --git a/.github/workflows/deploy-docker-gitea.yml b/.github/workflows/deploy-docker-gitea.yml index e7b6d866..f9fae4fd 100755 --- a/.github/workflows/deploy-docker-gitea.yml +++ b/.github/workflows/deploy-docker-gitea.yml @@ -6,8 +6,11 @@ # upload this workflow to both the `main` branch of the tvapp2 repository # @secrets secrets.ADMINSERV_GPG_KEY_ASC gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK # secrets.ADMINSERV_GPG_PASSPHRASE gpg private key passphrase +# secrets.ORG_BINARYNINJA_TOKEN github personal access token (fine-grained) +# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) +# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN dockerhub secret # secrets.ORG_BINARYNINJA_GITEA_TOKEN gitea personal access token (classic) with package:write permission -# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES Discord webhook to report releases from gitea to discord +# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES discord webhook to report releases from github to discord # # name: "📦 Deploy › Docker › Gitea" @@ -339,6 +342,31 @@ jobs: username: ${{ env.IMAGE_GITEA_USERNAME }} password: ${{ secrets.ORG_BINARYNINJA_GITEA_TOKEN }} + # # + # Release › Gitea › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_gi_readme_cache.outputs.content }} + # # + + - name: '📄 Cache README.md' + id: task_release_gi_readme_cache + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + script: | + 'use strict' + + const { promises: fs } = require('fs') + + const main = async () => { + const path = "README.md" + let content = await fs.readFile(path, 'utf8') + + core.setOutput('content', content) + } + + main().catch(err => core.setFailed(err.message)) + # # # Release › Gitea › Meta › amd64 # @@ -530,6 +558,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Gitea › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_gi_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_gi_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Gitea › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_gi_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Gitea › Build and Push › Arm64 # # @@ -553,6 +609,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Gitea › Export Digest › Arm64 + # # + + - name: '📄 Export Digest (linux/arm64)' + id: task_release_gi_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_gi_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Gitea › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_gi_digest_upload_arm64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Gitea › Push Manifest # # diff --git a/.github/workflows/deploy-docker-github.yml b/.github/workflows/deploy-docker-github.yml index adee9110..bb900f84 100755 --- a/.github/workflows/deploy-docker-github.yml +++ b/.github/workflows/deploy-docker-github.yml @@ -6,8 +6,11 @@ # upload this workflow to both the `main` branch of the tvapp2 repository # @secrets secrets.ADMINSERV_GPG_KEY_ASC gpg private key (armored) | BEGIN PGP PRIVATE KEY BLOCK # secrets.ADMINSERV_GPG_PASSPHRASE gpg private key passphrase -# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) with package:write permission -# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES Discord webhook to report releases from github to discord +# secrets.ORG_BINARYNINJA_TOKEN github personal access token (fine-grained) +# secrets.ORG_BINARYNINJA_TOKEN_CL github personal access token (classic) +# secrets.ORG_BINARYNINJA_DOCKERHUB_TOKEN dockerhub secret +# secrets.ORG_BINARYNINJA_GITEA_TOKEN gitea personal access token (classic) with package:write permission +# secrets.DISCORD_WEBHOOK_CHAN_GITHUB_TVAPP2_RELEASES discord webhook to report releases from github to discord # # name: "📦 Deploy › Docker › Github" @@ -326,6 +329,8 @@ jobs: # # # Release › Github › Read Readme + # + # @usage org.opencontainers.image.description=${{ steps.task_release_gh_readme_cache.outputs.content }} # # - name: '📄 Cache README.md' @@ -429,6 +434,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Github › Export Digest › Amd64 + # # + + - name: '📄 Export Digest (linux/amd64)' + id: task_release_gh_digest_export_amd64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-amd64 + digest="${{ steps.task_release_gh_push_amd64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-amd64/$digest" + shell: bash + + # # + # Release › Github › Upload Digest › Amd64 + # # + + - name: '🔼 Upload Digest (linux/amd64)' + id: task_release_gh_digest_upload_amd64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-amd64 + path: /tmp/build-digest-amd64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Github › Build and Push › Arm64 # # @@ -454,6 +487,34 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ env.NOW_DOCKER_LABEL }} + # # + # Release › Github › Export Digest › Arm64 + # # + + - name: '📄 Export Digest (linux/arm64)' + id: task_release_gh_digest_export_arm64 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + run: | + mkdir -p /tmp/build-digest-arm64 + digest="${{ steps.task_release_gh_push_arm64.outputs.digest }}" + digest="${digest#sha256:}" + touch "/tmp/build-digest-arm64/$digest" + shell: bash + + # # + # Release › Github › Upload Digest › Arm64 + # # + + - name: '🔼 Upload Digest (linux/arm64)' + id: task_release_gh_digest_upload_arm64 + uses: actions/upload-artifact@v4 + if: ( github.event_name == 'workflow_dispatch' && inputs.DRY_RUN == false ) || ( github.event_name == 'push' ) + with: + name: digest-arm64 + path: /tmp/build-digest-arm64/* + if-no-files-found: error + retention-days: 10 + # # # Release › Github › Push Manifest # #