From d622de1341df90fba1aebc682de441904c914981 Mon Sep 17 00:00:00 2001 From: Aetherinox Date: Wed, 26 Feb 2025 01:38:17 -0700 Subject: [PATCH] ci: update deployment workflow to add single and double digit version numbers --- .github/workflows/deploy-docker-all.yml | 72 +++++++++++++------ .github/workflows/deploy-docker-dockerhub.yml | 4 ++ .github/workflows/deploy-docker-gitea.yml | 4 ++ .github/workflows/deploy-docker-giteacom.yml | 4 ++ .github/workflows/deploy-docker-github.yml | 32 +++++++-- 5 files changed, 89 insertions(+), 27 deletions(-) diff --git a/.github/workflows/deploy-docker-all.yml b/.github/workflows/deploy-docker-all.yml index b4ef79f3..b2629375 100755 --- a/.github/workflows/deploy-docker-all.yml +++ b/.github/workflows/deploy-docker-all.yml @@ -314,6 +314,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{github.repository}} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -430,29 +432,6 @@ jobs: org.opencontainers.image.development=${{ inputs.DEV_RELEASE == true && 'true' || 'false' }} 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 โ€บ Build and Push โ€บ Arm64 # # @@ -476,6 +455,29 @@ jobs: VERSION=${{ env.IMAGE_VERSION }} BUILDDATE=${{ 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 โ€บ Push Manifest # # @@ -515,6 +517,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_GHCR_AUTHOR .................... ${{ env.IMAGE_GHCR_AUTHOR }}" echo "env.IMAGE_GHCR_USERNAME .................. ${{ env.IMAGE_GHCR_USERNAME }}" echo "env.NOW .................................. ${{ env.NOW }}" @@ -541,6 +545,20 @@ jobs: echo "docker image id (arm64) .................. ${{ steps.task_release_gh_push_arm64.outputs.imageid }}" echo "docker digest (arm64) .................... ${{ steps.task_release_gh_push_arm64.outputs.digest }}" + # # + # Release โ€บ Github โ€บ Clean Untagged Images + # # + + - name: '๐Ÿงน Clean Untagged Images' + uses: quartx-analytics/ghcr-cleaner@v1 + with: + owner-type: org + token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + repository-owner: ${{ github.repository_owner }} + repository-name: ${{ github.repository }} + delete-untagged: true + # keep-at-most: 0 + # # # Release โ€บ Github โ€บ Get Weekly Commits # # @@ -651,6 +669,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{github.repository}} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -851,6 +871,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_DOCKERHUB_AUTHOR ............... ${{ env.IMAGE_DOCKERHUB_AUTHOR }}" echo "env.IMAGE_DOCKERHUB_USERNAME ............. ${{ env.IMAGE_DOCKERHUB_USERNAME }}" echo "env.NOW .................................. ${{ env.NOW }}" @@ -987,6 +1009,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }}/${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -1260,6 +1284,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_GITEA_AUTHOR ................... ${{ env.IMAGE_GITEA_AUTHOR }}" echo "env.IMAGE_GITEA_USERNAME ................. ${{ env.IMAGE_GITEA_USERNAME }}" echo "env.IMAGE_GITEA_WEBSITE .................. ${{ env.IMAGE_GITEA_WEBSITE }}" diff --git a/.github/workflows/deploy-docker-dockerhub.yml b/.github/workflows/deploy-docker-dockerhub.yml index 681468df..7f3054ae 100755 --- a/.github/workflows/deploy-docker-dockerhub.yml +++ b/.github/workflows/deploy-docker-dockerhub.yml @@ -246,6 +246,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{github.repository}} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_DOCKERHUB_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -446,6 +448,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_DOCKERHUB_AUTHOR ............... ${{ env.IMAGE_DOCKERHUB_AUTHOR }}" echo "env.IMAGE_DOCKERHUB_USERNAME ............. ${{ env.IMAGE_DOCKERHUB_USERNAME }}" echo "env.NOW .................................. ${{ env.NOW }}" diff --git a/.github/workflows/deploy-docker-gitea.yml b/.github/workflows/deploy-docker-gitea.yml index f86f9cc8..dab19458 100755 --- a/.github/workflows/deploy-docker-gitea.yml +++ b/.github/workflows/deploy-docker-gitea.yml @@ -258,6 +258,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }}/${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -524,6 +526,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_GITEA_AUTHOR ................... ${{ env.IMAGE_GITEA_AUTHOR }}" echo "env.IMAGE_GITEA_USERNAME ................. ${{ env.IMAGE_GITEA_USERNAME }}" echo "env.IMAGE_GITEA_WEBSITE .................. ${{ env.IMAGE_GITEA_WEBSITE }}" diff --git a/.github/workflows/deploy-docker-giteacom.yml b/.github/workflows/deploy-docker-giteacom.yml index 06d23a54..601a1c05 100644 --- a/.github/workflows/deploy-docker-giteacom.yml +++ b/.github/workflows/deploy-docker-giteacom.yml @@ -258,6 +258,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }}/${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -521,6 +523,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }}/${{ env.IMAGE_NAME }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GITEA_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # binaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 diff --git a/.github/workflows/deploy-docker-github.yml b/.github/workflows/deploy-docker-github.yml index 2b6ee802..29b5ce98 100755 --- a/.github/workflows/deploy-docker-github.yml +++ b/.github/workflows/deploy-docker-github.yml @@ -243,6 +243,8 @@ jobs: - name: '๐Ÿ•› Get Timestamp' id: task_release_set_timestamp run: | + echo "IMAGE_VERSION_1DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-1`" >> ${GITHUB_ENV} # 1 + echo "IMAGE_VERSION_2DIGIT=`echo ${{ env.IMAGE_VERSION }} | cut -d '.' -f1-2`" >> ${GITHUB_ENV} # 1.0 echo "REGISTRY_REPO_ORG_AUTHOR_LC=`echo ${{github.repository}} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja/tvapp2 echo "REGISTRY_REPO_AUTHOR_LC=`echo ${{ env.IMAGE_GHCR_AUTHOR }} | tr '[:upper:]' '[:lower:]'`" >> ${GITHUB_ENV} # thebinaryninja echo "DOCKER_SHA=${GITHUB_SHA}" >> $GITHUB_ENV # 71fad013cfce9116ec62779e4a7e627fe4c33627 @@ -336,15 +338,21 @@ jobs: # latest yes type=raw,value=latest,enable=${{ !inputs.DEV_RELEASE }} + # tag add tag + type=ref,enable=${{ github.event_name == 'pull_request' || github.event_name == 'push' }},priority=600,prefix=,suffix=,event=tag + # dispatch add x1.x.x - type=raw,enable=${{ github.event_name == 'workflow_dispatch' && inputs.DEV_RELEASE == false }},priority=300,prefix=,suffix=,value=${{ env.IMAGE_VERSION }} + type=raw,enable=${{ github.event_name == 'workflow_dispatch' && inputs.DEV_RELEASE == false }},priority=450,prefix=,suffix=,value=${{ env.IMAGE_VERSION }} + + # dispatch add x1.x + type=raw,enable=${{ github.event_name == 'workflow_dispatch' && inputs.DEV_RELEASE == false }},priority=425,prefix=,suffix=,value=${{ env.IMAGE_VERSION_2DIGIT }} + + # dispatch add x1 + type=raw,enable=${{ github.event_name == 'workflow_dispatch' && inputs.DEV_RELEASE == false }},priority=400,prefix=,suffix=,value=${{ env.IMAGE_VERSION_1DIGIT }} # dispatch add development type=raw,enable=${{ github.event_name == 'workflow_dispatch' && inputs.DEV_RELEASE == true }},priority=300,prefix=,suffix=,value=development - # tag add tag - type=ref,enable=${{ github.event_name == 'pull_request' || github.event_name == 'push' }},priority=600,prefix=,suffix=,event=tag - # add development tag to default architecture (amd64) type=raw,enable=${{ inputs.DEV_RELEASE }},priority=400,prefix=,suffix=,value=development flavor: | @@ -444,6 +452,8 @@ jobs: echo "[ ENV ] ------------------------------------------------------------------------------------------------" echo "env.IMAGE_NAME ........................... ${{ env.IMAGE_NAME }}" echo "env.IMAGE_VERSION ........................ ${{ env.IMAGE_VERSION }}" + echo "env.IMAGE_VERSION_1DIGIT ................. ${{ env.IMAGE_VERSION_1DIGIT }}" + echo "env.IMAGE_VERSION_2DIGIT ................. ${{ env.IMAGE_VERSION_2DIGIT }}" echo "env.IMAGE_GHCR_AUTHOR .................... ${{ env.IMAGE_GHCR_AUTHOR }}" echo "env.IMAGE_GHCR_USERNAME .................. ${{ env.IMAGE_GHCR_USERNAME }}" echo "env.NOW .................................. ${{ env.NOW }}" @@ -471,6 +481,20 @@ jobs: echo "docker image id (arm64) .................. ${{ steps.task_release_gh_push_arm64.outputs.imageid }}" echo "docker digest (arm64) .................... ${{ steps.task_release_gh_push_arm64.outputs.digest }}" + # # + # Release โ€บ Github โ€บ Clean Untagged Images + # # + + - name: '๐Ÿงน Clean Untagged Images' + uses: quartx-analytics/ghcr-cleaner@v1 + with: + owner-type: org + token: ${{ secrets.ORG_BINARYNINJA_TOKEN_CL }} + repository-owner: ${{ github.repository_owner }} + repository-name: ${{ github.repository }} + delete-untagged: true + # keep-at-most: 0 + # # # Release โ€บ Github โ€บ Get Weekly Commits # #