From ebed4ca1f3feed96963ff7f2d86c008945917db7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 15 Aug 2025 12:43:36 -0700 Subject: [PATCH 01/72] wip --- .github/workflows/dev-workflow-p2.yml | 39 ++++++++++++++++++++------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/.github/workflows/dev-workflow-p2.yml b/.github/workflows/dev-workflow-p2.yml index 7427ec970e..03393dc030 100644 --- a/.github/workflows/dev-workflow-p2.yml +++ b/.github/workflows/dev-workflow-p2.yml @@ -26,16 +26,37 @@ jobs: sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} secrets: inherit - upload-to-jfrog: - name: Upload artifacts to JFrog - needs: [ - bump-dev-number, - rebuild-artifacts-with-new-dev-num - ] - uses: ./.github/workflows/upload-to-jfrog.yml + upload-github-artifacts-to-jfrog: + uses: aerospike/shared-workflows/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: - version: ${{ needs.bump-dev-number.outputs.new_version }} - secrets: inherit + project: clients + # build-name: + # description: JFrog build name + # required: true + # type: string + # version: + # description: Version of the artifact to upload + # required: true + # type: string + + create-jfrog-release-bundle: + uses: aerospike/shared-workflows/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 + with: + project: clients + # build-names: + # bundle-name: + # version: + + # upload-to-jfrog: + # name: Upload artifacts to JFrog + # needs: [ + # bump-dev-number, + # rebuild-artifacts-with-new-dev-num + # ] + # uses: ./.github/workflows/upload-to-jfrog.yml + # with: + # version: ${{ needs.bump-dev-number.outputs.new_version }} + # secrets: inherit # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: From da9f4800d062583bf92966a93a320bada357c6bf Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:39:06 -0700 Subject: [PATCH 02/72] get jfrog project name dynamically from env var --- .github/workflows/dev-workflow-p2.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-workflow-p2.yml b/.github/workflows/dev-workflow-p2.yml index 03393dc030..e26281b7de 100644 --- a/.github/workflows/dev-workflow-p2.yml +++ b/.github/workflows/dev-workflow-p2.yml @@ -26,10 +26,22 @@ jobs: sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} secrets: inherit + get-jfrog-project-to-store-artifacts: + needs: rebuild-artifacts-with-new-dev-num + name: Get Jfrog project to store artifacts + runs-on: ubuntu-24.04 + outputs: + jfrog-project: ${{ steps.get-jfrog-project.outputs.jfrog_project }} + + steps: + - id: get-jfrog-project + run: echo jfrog_project=${{ env.JFROG_PYTHON_CLIENT_PROJECT }} >> $GITHUB_OUTPUT + upload-github-artifacts-to-jfrog: + needs: get-jfrog-project-to-store-artifacts uses: aerospike/shared-workflows/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: - project: clients + project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} # build-name: # description: JFrog build name # required: true @@ -40,6 +52,7 @@ jobs: # type: string create-jfrog-release-bundle: + needs: upload-github-artifacts-to-jfrog uses: aerospike/shared-workflows/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: project: clients @@ -59,6 +72,6 @@ jobs: # secrets: inherit # We don't want the artifacts in JFrog to also exist in Github - delete-artifacts: - needs: upload-to-jfrog - uses: ./.github/workflows/delete-artifacts.yml + # delete-artifacts: + # needs: upload-to-jfrog + # uses: ./.github/workflows/delete-artifacts.yml From ff0960e1f6564a18faf202a5a70e483b88a79039 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:44:54 -0700 Subject: [PATCH 03/72] example was wrong? --- .github/workflows/dev-workflow-p2.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-workflow-p2.yml b/.github/workflows/dev-workflow-p2.yml index e26281b7de..bce68e8115 100644 --- a/.github/workflows/dev-workflow-p2.yml +++ b/.github/workflows/dev-workflow-p2.yml @@ -39,7 +39,7 @@ jobs: upload-github-artifacts-to-jfrog: needs: get-jfrog-project-to-store-artifacts - uses: aerospike/shared-workflows/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 + uses: aerospike/shared-workflows/.github/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} # build-name: @@ -53,7 +53,7 @@ jobs: create-jfrog-release-bundle: needs: upload-github-artifacts-to-jfrog - uses: aerospike/shared-workflows/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 + uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: project: clients # build-names: From cab272e966bd4b89399e7e0a52a8379a731698b3 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:55:58 -0700 Subject: [PATCH 04/72] do basic plumbing --- .github/workflows/dev-workflow-p2.yml | 39 +++++++++++++++------------ 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/dev-workflow-p2.yml b/.github/workflows/dev-workflow-p2.yml index bce68e8115..affba1c5ef 100644 --- a/.github/workflows/dev-workflow-p2.yml +++ b/.github/workflows/dev-workflow-p2.yml @@ -31,34 +31,39 @@ jobs: name: Get Jfrog project to store artifacts runs-on: ubuntu-24.04 outputs: - jfrog-project: ${{ steps.get-jfrog-project.outputs.jfrog_project }} + jfrog-project: ${{ steps.get-env-vars.outputs.jfrog_project }} + jfrog-build-name: ${{ steps.get-env-vars.outputs.jfrog_build_name }} steps: - - id: get-jfrog-project - run: echo jfrog_project=${{ env.JFROG_PYTHON_CLIENT_PROJECT }} >> $GITHUB_OUTPUT + - name: Get outputs + id: get-env-vars + run: | + echo jfrog_project=${{ env.JFROG_PYTHON_CLIENT_PROJECT }} >> $GITHUB_OUTPUT + echo jfrog_build_name=${{ env.JFROG_BUILD_NAME }} >> $GITHUB_OUTPUT upload-github-artifacts-to-jfrog: - needs: get-jfrog-project-to-store-artifacts + needs: [ + bump-dev-number, + get-jfrog-project-to-store-artifacts + ] uses: aerospike/shared-workflows/.github/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} - # build-name: - # description: JFrog build name - # required: true - # type: string - # version: - # description: Version of the artifact to upload - # required: true - # type: string + build-name: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }} + version: ${{ needs.bump-dev-number.outputs.new_version }} create-jfrog-release-bundle: - needs: upload-github-artifacts-to-jfrog + needs: [ + bump-dev-number, + get-jfrog-project-to-store-artifacts, + upload-github-artifacts-to-jfrog + ] uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 with: - project: clients - # build-names: - # bundle-name: - # version: + project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} + build-names: "${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }}:${{ needs.bump-dev-number.outputs.new_version }}" + bundle-name: asdf + version: ${{ needs.bump-dev-number.outputs.new_version }} # upload-to-jfrog: # name: Upload artifacts to JFrog From 1bc924a1ed0aae3602370f342441a81f609d8027 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 9 Dec 2025 15:47:55 -0800 Subject: [PATCH 05/72] Update shared-workflows --- .github/workflows/dev-workflow-part2.yml | 39 +++++++++++------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index e064e39192..e9fa16e711 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -31,23 +31,28 @@ jobs: outputs: jfrog-project: ${{ steps.get-env-vars.outputs.jfrog_project }} jfrog-build-name: ${{ steps.get-env-vars.outputs.jfrog_build_name }} - steps: - name: Get outputs id: get-env-vars run: | echo jfrog_project=${{ env.JFROG_PYTHON_CLIENT_PROJECT }} >> $GITHUB_OUTPUT echo jfrog_build_name=${{ env.JFROG_BUILD_NAME }} >> $GITHUB_OUTPUT + env: + JFROG_PYTHON_CLIENT_PROJECT: clients + JFROG_BUILD_NAME: python-client upload-github-artifacts-to-jfrog: needs: [ bump-dev-number, get-jfrog-project-to-store-artifacts ] - uses: aerospike/shared-workflows/.github/workflows/reusable_upload-artifacts.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 + uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 with: - project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} - build-name: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }} + jf-project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} + jf-build-name: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }} + jf-build-id: ${{ github.run_number }} + jf-metadata-build-id: ${{ github.run_number }}-metadata + gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} create-jfrog-release-bundle: @@ -56,25 +61,15 @@ jobs: get-jfrog-project-to-store-artifacts, upload-github-artifacts-to-jfrog ] - uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@34ffd4613504a792f3cd5530c69fb9a3115ad9c1 + uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: - project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} - build-names: "${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }}:${{ needs.bump-dev-number.outputs.new_version }}" - bundle-name: asdf + jf-project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} + jf-build-names: "${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }}" + jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} - - # upload-to-jfrog: - # name: Upload artifacts to JFrog - # needs: [ - # bump-dev-number, - # rebuild-artifacts-with-new-dev-num - # ] - # uses: ./.github/workflows/upload-to-jfrog.yml - # with: - # version: ${{ needs.bump-dev-number.outputs.new_version }} - # secrets: inherit + gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 # We don't want the artifacts in JFrog to also exist in Github - # delete-artifacts: - # needs: upload-to-jfrog - # uses: ./.github/workflows/delete-artifacts.yml + delete-artifacts: + needs: upload-github-artifacts-to-jfrog + uses: ./.github/workflows/delete-artifacts.yml From 35b8c938d8f7744789aed6065e4fbb721c60757f Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 9 Dec 2025 15:58:05 -0800 Subject: [PATCH 06/72] Limit permissions for the bump-version workflow --- .github/workflows/bump-version.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index 7ec3716443..74522f766e 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -1,6 +1,9 @@ # Takes in how to bump version as input # Commits changes to bump version and outputs the new version and commit hash as output +permissions: + contents: write + name: Bump version on: workflow_dispatch: From 974612bdccd795afa3b6596f7d602c30254bc2d4 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 10 Dec 2025 13:59:50 -0800 Subject: [PATCH 07/72] Just use config variable for simplcity for now --- .github/workflows/dev-workflow-part2.yml | 29 ++++-------------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index e9fa16e711..65c9fc71d6 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -24,32 +24,14 @@ jobs: sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} secrets: inherit - get-jfrog-project-to-store-artifacts: - needs: rebuild-artifacts-with-new-dev-num - name: Get Jfrog project to store artifacts - runs-on: ubuntu-24.04 - outputs: - jfrog-project: ${{ steps.get-env-vars.outputs.jfrog_project }} - jfrog-build-name: ${{ steps.get-env-vars.outputs.jfrog_build_name }} - steps: - - name: Get outputs - id: get-env-vars - run: | - echo jfrog_project=${{ env.JFROG_PYTHON_CLIENT_PROJECT }} >> $GITHUB_OUTPUT - echo jfrog_build_name=${{ env.JFROG_BUILD_NAME }} >> $GITHUB_OUTPUT - env: - JFROG_PYTHON_CLIENT_PROJECT: clients - JFROG_BUILD_NAME: python-client - upload-github-artifacts-to-jfrog: needs: [ - bump-dev-number, - get-jfrog-project-to-store-artifacts + bump-dev-number ] uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 with: - jf-project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} - jf-build-name: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }} + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + jf-build-name: ${{ vars.JFROG_BUILD_NAME }} jf-build-id: ${{ github.run_number }} jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 @@ -58,13 +40,12 @@ jobs: create-jfrog-release-bundle: needs: [ bump-dev-number, - get-jfrog-project-to-store-artifacts, upload-github-artifacts-to-jfrog ] uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: - jf-project: ${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-project }} - jf-build-names: "${{ needs.get-jfrog-project-to-store-artifacts.outputs.jfrog-build-name }}" + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + jf-build-names: ${{ vars.JFROG_BUILD_NAME }} jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 From 3c477a979a9e0afcc78501d2c4aa66cc27f09ffc Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 10 Dec 2025 15:07:45 -0800 Subject: [PATCH 08/72] fix --- .github/workflows/dev-workflow-part2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 65c9fc71d6..36708bc8c4 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -26,7 +26,7 @@ jobs: upload-github-artifacts-to-jfrog: needs: [ - bump-dev-number + rebuild-artifacts-with-new-dev-num ] uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 with: From 85ba1cbcea502cd684657a7732b5c2a6afa06c74 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 10 Dec 2025 15:54:18 -0800 Subject: [PATCH 09/72] Remove overly permissive permissions. Add dry run option to avoid affecting production... --- .github/workflows/bump-version.yml | 14 +++++++++++--- .github/workflows/dev-workflow-part2.yml | 7 +++++++ .github/workflows/update-version.yml | 12 +++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index 99e814900f..a88845b609 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -1,9 +1,6 @@ # Takes in how to bump version as input # Commits changes to bump version and outputs the new version and commit hash as output -permissions: - contents: write - name: Bump version on: workflow_dispatch: @@ -16,8 +13,18 @@ on: - bump-dev-num - promote-dev-build-to-rc - promote-rc-build-to-release + dry-run: + required: false + default: false + type: boolean + description: No tagging in repo workflow_call: inputs: + dry-run: + required: false + default: false + type: boolean + description: Dry run change: # Since workflow_call doesn't support 'options' input type, # we take in a string instead that must be a valid Python script name (excluding the .py part) @@ -96,4 +103,5 @@ jobs: with: new_version: ${{ needs.get-new-version.outputs.new_version }} ref: ${{ inputs.is_workflow_call && inputs.ref || github.ref }} + dry-run: ${{ inputs.dry-run }} secrets: inherit diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 36708bc8c4..4ebc478581 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -6,12 +6,19 @@ on: branches: - 'dev*' workflow_dispatch: + inputs: + dry-run: + required: false + default: false + type: boolean + description: Dry run jobs: bump-dev-number: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' + dry-run: ${{ inputs.dry-run }} secrets: inherit rebuild-artifacts-with-new-dev-num: diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index 956ce1524a..aa2d75f30e 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -9,6 +9,11 @@ on: type: string description: Version string to set in the repo required: true + dry-run: + required: false + default: false + type: boolean + description: No tagging in repo workflow_call: inputs: new_version: @@ -19,6 +24,11 @@ on: type: string description: commit/branch to change version required: false + dry-run: + required: false + default: false + type: boolean + description: No tagging in repo # A hack to tell if workflow is triggered by workflow_call or not # Calling workflows should not set this input # If workflow is triggered by workflow_dispatch, this should be set to the default boolean value: false @@ -61,7 +71,7 @@ jobs: with: commit_message: 'Auto-bump version to ${{ inputs.new_version }} [skip ci]' commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> - tagging_message: ${{ inputs.new_version }} + tagging_message: ${{ inputs.dry-run && inputs.new_version || '' }} branch: ${{ inputs.is_workflow_call && inputs.ref || github.ref }} - name: Output bump commit hash for next jobs to use From e620aa21c9d4c6c0d7c237221ae9f02cdde0e86d Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 11 Dec 2025 08:36:49 -0800 Subject: [PATCH 10/72] Finish dry run --- .github/workflows/dev-workflow-part2.yml | 3 ++- .github/workflows/update-version.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 4ebc478581..4f55b4b950 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -11,7 +11,7 @@ on: required: false default: false type: boolean - description: Dry run + description: Don't create tags and don't upload to JFrog jobs: bump-dev-number: @@ -43,6 +43,7 @@ jobs: jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} + dry-run: ${{ inputs.dry-run }} create-jfrog-release-bundle: needs: [ diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index aa2d75f30e..7ea01668c9 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -71,7 +71,7 @@ jobs: with: commit_message: 'Auto-bump version to ${{ inputs.new_version }} [skip ci]' commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> - tagging_message: ${{ inputs.dry-run && inputs.new_version || '' }} + tagging_message: ${{ inputs.dry-run == false && inputs.new_version || '' }} branch: ${{ inputs.is_workflow_call && inputs.ref || github.ref }} - name: Output bump commit hash for next jobs to use From f8608e2775c8bdeea232b45610b6e87ed4d7e0c6 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 11 Dec 2025 08:50:06 -0800 Subject: [PATCH 11/72] Fix dry run not working in push event --- .github/workflows/dev-workflow-part2.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 4f55b4b950..84ef1a0134 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -18,7 +18,7 @@ jobs: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' - dry-run: ${{ inputs.dry-run }} + dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} secrets: inherit rebuild-artifacts-with-new-dev-num: @@ -43,7 +43,7 @@ jobs: jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} - dry-run: ${{ inputs.dry-run }} + dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} create-jfrog-release-bundle: needs: [ @@ -57,6 +57,7 @@ jobs: jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 + dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: From ae61fdbe709d0fcdb9b34c22594850120fb5286d Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 11 Dec 2025 08:57:40 -0800 Subject: [PATCH 12/72] fix --- .github/workflows/dev-workflow-part2.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 84ef1a0134..acc2b00855 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -18,7 +18,7 @@ jobs: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' - dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} secrets: inherit rebuild-artifacts-with-new-dev-num: @@ -43,7 +43,7 @@ jobs: jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} - dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} create-jfrog-release-bundle: needs: [ @@ -57,7 +57,7 @@ jobs: jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 - dry-run: ${{ github.event == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: From 1a42a96ada0a4a7995b303d9b844e1e97d98ffc2 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:13:16 -0800 Subject: [PATCH 13/72] Fix oidc credentials --- .github/workflows/dev-workflow-part2.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index acc2b00855..f425c7fcdc 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -44,6 +44,8 @@ jobs: gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + oidc-provider-name: clients-gh-aerospike + oidc-audience: clients-gh-aerospike create-jfrog-release-bundle: needs: [ From 76c389c5f7d46d87bcf424ea94887d9e42c10c2e Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:43:24 -0800 Subject: [PATCH 14/72] try databases proj --- .github/workflows/dev-workflow-part2.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index f425c7fcdc..8847416c5b 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -44,8 +44,8 @@ jobs: gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} - oidc-provider-name: clients-gh-aerospike - oidc-audience: clients-gh-aerospike + oidc-provider-name: database-gh-aerospike + oidc-audience: database-gh-aerospike create-jfrog-release-bundle: needs: [ From ff276297ec703d9bf7350b0d6fb7e3ac3e851886 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:57:58 -0800 Subject: [PATCH 15/72] Add glue code --- .github/workflows/dev-workflow-part2.yml | 26 +++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 8847416c5b..7d30480167 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -31,9 +31,33 @@ jobs: sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} secrets: inherit + reupload-github-artifacts-as-one: + needs: rebuild-artifacts-with-new-dev-num + name: Reupload Github artifacts as one artifact + runs-on: ubuntu-22.04 + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@df199fb7be9f65074067a9eb93f12bb4c5547cf2 # v2.13.3 + with: + egress-policy: audit + + - name: Download artifacts + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + pattern: '*.build' + merge-multiple: true + path: artifacts + + - name: Reupload artifacts as one + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + # Not actually signed... + name: signed-artifacts + path: ./artifacts + upload-github-artifacts-to-jfrog: needs: [ - rebuild-artifacts-with-new-dev-num + reupload-github-artifacts-as-one ] uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 with: From ec8d426beae9f9209d9713f91eb0affe7a6297a2 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:07:20 -0800 Subject: [PATCH 16/72] fix... --- .github/workflows/dev-workflow-part2.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 7d30480167..00656f56ac 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -57,6 +57,7 @@ jobs: upload-github-artifacts-to-jfrog: needs: [ + bump-dev-number, reupload-github-artifacts-as-one ] uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 From 23e873498dbed2f010733df710293fa991e9f58b Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:15:18 -0800 Subject: [PATCH 17/72] fix... --- .github/workflows/dev-workflow-part2.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 00656f56ac..32b2ac3ff2 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -85,6 +85,8 @@ jobs: version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + oidc-provider-name: database-gh-aerospike + oidc-audience: database-gh-aerospike # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: From b5f62a83f1cdcfccc6ccbaaeeb5413a4aad9aae8 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:25:41 -0800 Subject: [PATCH 18/72] fix --- .github/workflows/dev-workflow-part2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 32b2ac3ff2..f3889ba4af 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -80,7 +80,7 @@ jobs: uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - jf-build-names: ${{ vars.JFROG_BUILD_NAME }} + jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, needs.bump-dev-number.outputs.new_version) }} jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 From aa6fc5ba794538fc5bdf3c3df91225896f4ff176 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 15 Dec 2025 08:32:47 -0800 Subject: [PATCH 19/72] Replace oidc credentials with variables in case it's changed upstream --- .github/workflows/dev-workflow-part2.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index f3889ba4af..f1855d8dc2 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -69,8 +69,8 @@ jobs: gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} - oidc-provider-name: database-gh-aerospike - oidc-audience: database-gh-aerospike + oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} + oidc-audience: ${{ vars.OIDC_AUDIENCE }} create-jfrog-release-bundle: needs: [ @@ -85,8 +85,8 @@ jobs: version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} - oidc-provider-name: database-gh-aerospike - oidc-audience: database-gh-aerospike + oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} + oidc-audience: ${{ vars.OIDC_AUDIENCE }} # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: From 2c250231f23b861ff4dfe2793d0df8e42f1896ed Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 15 Dec 2025 08:43:18 -0800 Subject: [PATCH 20/72] Fix --- .github/workflows/dev-workflow-part2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index f1855d8dc2..579b846f31 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -80,7 +80,7 @@ jobs: uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, needs.bump-dev-number.outputs.new_version) }} + jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} jf-bundle-name: python-client-release version: ${{ needs.bump-dev-number.outputs.new_version }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 From 4f7b0a15d8b6f8cbede9234bfa85a796819ff9f2 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:49:22 -0800 Subject: [PATCH 21/72] Add job to promote release bundle to DEV --- .github/workflows/dev-workflow-part2.yml | 26 ++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 579b846f31..3b5aa65c8d 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -72,6 +72,11 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} + # We don't want the artifacts in JFrog to also exist in Github + delete-artifacts: + needs: upload-github-artifacts-to-jfrog + uses: ./.github/workflows/delete-artifacts.yml + create-jfrog-release-bundle: needs: [ bump-dev-number, @@ -88,7 +93,20 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - # We don't want the artifacts in JFrog to also exist in Github - delete-artifacts: - needs: upload-github-artifacts-to-jfrog - uses: ./.github/workflows/delete-artifacts.yml + promote-release-bundle-to-dev: + runs-on: ubuntu-24.04 + needs: [ + bump-dev-number, + create-jfrog-release-bundle + ] + steps: + - name: Setup JFrog CLI + - uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 + env: + JF_URL: https://artifact.aerospike.io + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + with: + oidc-provider-name: ${{ inputs.oidc-provider-name }} + oidc-audience: ${{ inputs.oidc-audience }} + + - run: jf rbp python-client-release ${{ needs.bump-dev-number.outputs.new_version }} DEV From ea8975c38847360aca7b8dcaae223f8c325664fb Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:42:43 -0800 Subject: [PATCH 22/72] fix --- .github/workflows/dev-workflow-part2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 3b5aa65c8d..8a0e2e5ab4 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -101,7 +101,7 @@ jobs: ] steps: - name: Setup JFrog CLI - - uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 + uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: JF_URL: https://artifact.aerospike.io jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} From 2d57d4c2885eeb7b08c71443936c7d59bf6c988d Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 16 Dec 2025 10:06:51 -0800 Subject: [PATCH 23/72] Create reusable workflow to promote release bundle to any stage --- .github/workflows/dev-workflow-part2.yml | 18 +++++-------- .github/workflows/promote-release-bundle.yml | 27 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/promote-release-bundle.yml diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 8a0e2e5ab4..883025c56b 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -93,20 +93,14 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} + promote-release-bundle-to-dev: - runs-on: ubuntu-24.04 needs: [ bump-dev-number, create-jfrog-release-bundle ] - steps: - - name: Setup JFrog CLI - uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 - env: - JF_URL: https://artifact.aerospike.io - jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - with: - oidc-provider-name: ${{ inputs.oidc-provider-name }} - oidc-audience: ${{ inputs.oidc-audience }} - - - run: jf rbp python-client-release ${{ needs.bump-dev-number.outputs.new_version }} DEV + uses: .github/workflows/promote-release-bundle.yml + with: + release-bundle-name: python-client-release + release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} + new-environment: DEV diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml new file mode 100644 index 0000000000..b0efc79430 --- /dev/null +++ b/.github/workflows/promote-release-bundle.yml @@ -0,0 +1,27 @@ +on: + workflow_call: + inputs: + release-bundle-name: + type: string + required: true + release-bundle-version: + type: string + required: true + new-environment: + type: string + required: true + +jobs: + promote-release-bundle-to-dev: + runs-on: ubuntu-24.04 + steps: + - name: Setup JFrog CLI + uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 + env: + JF_URL: https://artifact.aerospike.io + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + with: + oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} + oidc-audience: ${{ vars.OIDC_AUDIENCE }} + + - run: jf rbp ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} From 38f679acc539b30640fd300be065e5ec7972db43 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 16 Dec 2025 10:12:00 -0800 Subject: [PATCH 24/72] In dev-to-stage workflow, promote release bundle to TEST environment --- .../bump-stage-and-upload-to-jfrog.yml | 44 +++---------------- .github/workflows/dev-workflow-part2.yml | 1 - 2 files changed, 6 insertions(+), 39 deletions(-) diff --git a/.github/workflows/bump-stage-and-upload-to-jfrog.yml b/.github/workflows/bump-stage-and-upload-to-jfrog.yml index 922c94de93..5dac68d6d0 100644 --- a/.github/workflows/bump-stage-and-upload-to-jfrog.yml +++ b/.github/workflows/bump-stage-and-upload-to-jfrog.yml @@ -24,44 +24,12 @@ jobs: base_branch: ${{ vars.STAGE_BRANCH_NAME }} secrets: inherit - promote-dev-build-to-rc: - name: Bump (promote) the dev version to an RC version in the stage branch - needs: ff-stage-to-dev-tag - uses: ./.github/workflows/bump-version.yml - with: - change: 'promote-dev-build-to-rc' - ref: ${{ vars.STAGE_BRANCH_NAME }} - secrets: inherit - - rebuild-artifacts-with-rc-version: - needs: promote-dev-build-to-rc - uses: ./.github/workflows/build-artifacts.yml - with: - sha-to-build-and-test: ${{ needs.promote-dev-build-to-rc.outputs.bump_sha }} - secrets: inherit - - upload-rc-artifacts-to-jfrog: + promote-release-bundle-to-dev: needs: [ - rebuild-artifacts-with-rc-version, - # We need the new RC version to label the build in JFrog - promote-dev-build-to-rc + ff-stage-to-dev-tag, ] - name: Upload artifacts to JFrog - uses: ./.github/workflows/upload-to-jfrog.yml + uses: .github/workflows/promote-release-bundle.yml with: - version: ${{ needs.promote-dev-build-to-rc.outputs.new_version }} - secrets: inherit - - # See reason for deleting artifacts in dev-workflow-p2.yml - delete-artifacts: - needs: upload-rc-artifacts-to-jfrog - uses: ./.github/workflows/delete-artifacts.yml - - ff-dev-to-stage: - name: Fast forward dev branch to stage branch to include the bump to RC commit - needs: promote-dev-build-to-rc - uses: ./.github/workflows/fast-forward-merge.yml - with: - ref_to_merge: origin/${{ vars.STAGE_BRANCH_NAME }} - base_branch: ${{ vars.DEV_BRANCH_NAME }} - secrets: inherit + release-bundle-name: python-client-release + release-bundle-version: ${{ inputs.passed-dev-tag }} + new-environment: TEST diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 883025c56b..1a062a6b7e 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -93,7 +93,6 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - promote-release-bundle-to-dev: needs: [ bump-dev-number, From 543008b746003e4dbfa88c21cac66ccdcbc0aca3 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 16 Dec 2025 10:18:11 -0800 Subject: [PATCH 25/72] Fix syntax.. --- .github/workflows/bump-stage-and-upload-to-jfrog.yml | 2 +- .github/workflows/dev-workflow-part2.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bump-stage-and-upload-to-jfrog.yml b/.github/workflows/bump-stage-and-upload-to-jfrog.yml index 5dac68d6d0..f2a0cb1cbb 100644 --- a/.github/workflows/bump-stage-and-upload-to-jfrog.yml +++ b/.github/workflows/bump-stage-and-upload-to-jfrog.yml @@ -28,7 +28,7 @@ jobs: needs: [ ff-stage-to-dev-tag, ] - uses: .github/workflows/promote-release-bundle.yml + uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: python-client-release release-bundle-version: ${{ inputs.passed-dev-tag }} diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 1a062a6b7e..5dc5492f71 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -98,7 +98,7 @@ jobs: bump-dev-number, create-jfrog-release-bundle ] - uses: .github/workflows/promote-release-bundle.yml + uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: python-client-release release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} From fb9549a0bb19ad88923a8e7a5abe9bc1fca3d4d8 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 19 Dec 2025 11:35:37 -0800 Subject: [PATCH 26/72] Write skeleton code for promoting to dev --- .github/workflows/dev-workflow-part2.yml | 76 ++----------------- .../run-dev-tests-and-promote-to-dev.yml | 68 +++++++++++++++++ 2 files changed, 74 insertions(+), 70 deletions(-) create mode 100644 .github/workflows/run-dev-tests-and-promote-to-dev.yml diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 5dc5492f71..955d8f73bc 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -6,19 +6,12 @@ on: branches: - 'dev*' workflow_dispatch: - inputs: - dry-run: - required: false - default: false - type: boolean - description: Don't create tags and don't upload to JFrog jobs: bump-dev-number: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' - dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} secrets: inherit rebuild-artifacts-with-new-dev-num: @@ -31,75 +24,18 @@ jobs: sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} secrets: inherit - reupload-github-artifacts-as-one: - needs: rebuild-artifacts-with-new-dev-num - name: Reupload Github artifacts as one artifact - runs-on: ubuntu-22.04 - steps: - - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@df199fb7be9f65074067a9eb93f12bb4c5547cf2 # v2.13.3 - with: - egress-policy: audit - - - name: Download artifacts - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 - with: - pattern: '*.build' - merge-multiple: true - path: artifacts - - - name: Reupload artifacts as one - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - # Not actually signed... - name: signed-artifacts - path: ./artifacts - - upload-github-artifacts-to-jfrog: + upload-to-jfrog: + name: Upload artifacts to JFrog needs: [ bump-dev-number, - reupload-github-artifacts-as-one + rebuild-artifacts-with-new-dev-num ] - uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 + uses: ./.github/workflows/upload-to-jfrog.yml with: - jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - jf-build-name: ${{ vars.JFROG_BUILD_NAME }} - jf-build-id: ${{ github.run_number }} - jf-metadata-build-id: ${{ github.run_number }}-metadata - gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 version: ${{ needs.bump-dev-number.outputs.new_version }} - dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} - oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} - oidc-audience: ${{ vars.OIDC_AUDIENCE }} + secrets: inherit # We don't want the artifacts in JFrog to also exist in Github delete-artifacts: - needs: upload-github-artifacts-to-jfrog + needs: upload-to-jfrog uses: ./.github/workflows/delete-artifacts.yml - - create-jfrog-release-bundle: - needs: [ - bump-dev-number, - upload-github-artifacts-to-jfrog - ] - uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 - with: - jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} - jf-bundle-name: python-client-release - version: ${{ needs.bump-dev-number.outputs.new_version }} - gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 - dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} - oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} - oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - promote-release-bundle-to-dev: - needs: [ - bump-dev-number, - create-jfrog-release-bundle - ] - uses: ./.github/workflows/promote-release-bundle.yml - with: - release-bundle-name: python-client-release - release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} - new-environment: DEV diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml new file mode 100644 index 0000000000..979351bc5a --- /dev/null +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -0,0 +1,68 @@ +on: + workflow_dispatch: + inputs: + dry-run: + required: false + default: false + type: boolean + description: Don't create release bundle + +jobs: + promote-dev-version-to-rc-version: + uses: ./.github/workflows/bump-version.yml + with: + change: promote-dev-build-to-rc + + promote-rc-version-to-release-version: + needs: promote-dev-version-to-rc-version + uses: ./.github/workflows/bump-version.yml + with: + change: promote-rc-build-to-release + + build-artifacts: + needs: promote-rc-version-to-release-version + uses: ./.github/workflows/build-artifacts.yml + secrets: inherit + + run-dev-tests: + needs: build-artifacts + uses: ./.github/workflows/test-server-rc.yml + # TODO: stub + secrets: inherit + + valgrind: + needs: build-artifacts + strategy: + matrix: + massif: [ + false + true + ] + fail-fast: false + uses: ./.github/workflows/valgrind.yml + + create-jfrog-release-bundle: + needs: [ + run-dev-tests, + valgrind + ] + uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 + with: + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} + jf-bundle-name: python-client-release + version: ${{ needs.bump-dev-number.outputs.new_version }} + gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 + dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} + oidc-audience: ${{ vars.OIDC_AUDIENCE }} + + promote-release-bundle-to-dev: + needs: [ + create-jfrog-release-bundle + ] + uses: ./.github/workflows/promote-release-bundle.yml + with: + release-bundle-name: python-client-release + release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} + new-environment: DEV From 97440d873334dc40757627c83f3e28ad1e7480ee Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 2 Jan 2026 12:10:39 -0800 Subject: [PATCH 27/72] very WIP --- .github/workflows/build-artifacts.yml | 3 ++ .github/workflows/build-sdist.yml | 8 ++++ .github/workflows/dev-workflow-part2.yml | 41 ------------------- .../run-dev-tests-and-promote-to-dev.yml | 39 ++++-------------- .github/workflows/valgrind.yml | 5 ++- 5 files changed, 24 insertions(+), 72 deletions(-) delete mode 100644 .github/workflows/dev-workflow-part2.yml diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml index 3bddc6cecc..bcf3a0b730 100644 --- a/.github/workflows/build-artifacts.yml +++ b/.github/workflows/build-artifacts.yml @@ -89,6 +89,9 @@ on: required: false type: string default: '' + outputs: + build-version: + value: ${{ jobs.build-sdist.outputs.sdist-version }} secrets: DOCKER_HUB_BOT_USERNAME: required: true diff --git a/.github/workflows/build-sdist.yml b/.github/workflows/build-sdist.yml index 9a8481fdc5..a3f9e0f530 100644 --- a/.github/workflows/build-sdist.yml +++ b/.github/workflows/build-sdist.yml @@ -9,6 +9,9 @@ on: sha_to_build: type: string required: true + outputs: + sdist-version: + value: ${{ jobs.build-sdist.outputs.sdist-version }} env: STATUS_CHECK_MESSAGE: "Build source distribution" @@ -16,6 +19,8 @@ env: jobs: build-sdist: + outputs: + sdist-version: ${{ steps.get-sdist-version.outputs.version }} name: Build source distribution runs-on: ubuntu-22.04 steps: @@ -48,6 +53,9 @@ jobs: - name: Build source distribution run: python3 -m build --sdist + - id: get-sdist-version + run: export "version=$(cat VERSION)" >> $GITHUB_OUTPUT + - name: Upload source distribution to GitHub uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml deleted file mode 100644 index 955d8f73bc..0000000000 --- a/.github/workflows/dev-workflow-part2.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Dev workflow (part 2) - -on: - # This will ignore bump commits because those commits have [skip ci] - push: - branches: - - 'dev*' - workflow_dispatch: - -jobs: - bump-dev-number: - uses: ./.github/workflows/bump-version.yml - with: - change: 'bump-dev-num' - secrets: inherit - - rebuild-artifacts-with-new-dev-num: - needs: bump-dev-number - name: Rebuild artifacts with new dev number - uses: ./.github/workflows/build-artifacts.yml - with: - # On pull_request_target, the bump version commit will be ignored - # So we must pass it manually to the workflow - sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} - secrets: inherit - - upload-to-jfrog: - name: Upload artifacts to JFrog - needs: [ - bump-dev-number, - rebuild-artifacts-with-new-dev-num - ] - uses: ./.github/workflows/upload-to-jfrog.yml - with: - version: ${{ needs.bump-dev-number.outputs.new_version }} - secrets: inherit - - # We don't want the artifacts in JFrog to also exist in Github - delete-artifacts: - needs: upload-to-jfrog - uses: ./.github/workflows/delete-artifacts.yml diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 979351bc5a..e126746984 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -8,50 +8,29 @@ on: description: Don't create release bundle jobs: - promote-dev-version-to-rc-version: - uses: ./.github/workflows/bump-version.yml - with: - change: promote-dev-build-to-rc - - promote-rc-version-to-release-version: - needs: promote-dev-version-to-rc-version - uses: ./.github/workflows/bump-version.yml - with: - change: promote-rc-build-to-release - - build-artifacts: - needs: promote-rc-version-to-release-version - uses: ./.github/workflows/build-artifacts.yml - secrets: inherit - run-dev-tests: - needs: build-artifacts - uses: ./.github/workflows/test-server-rc.yml - # TODO: stub + uses: ./.github/workflows/build-artifacts.yml secrets: inherit + # TODO: this should be run in parallel with build-artifacts after the manylinux wheel test has passed. + # TODO: this should use a wheel built from run-dev-tests valgrind: - needs: build-artifacts - strategy: - matrix: - massif: [ - false - true - ] - fail-fast: false + needs: run-dev-tests uses: ./.github/workflows/valgrind.yml + with: + massif: false create-jfrog-release-bundle: needs: [ - run-dev-tests, - valgrind + valgrind, + run-dev-tests ] uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} jf-bundle-name: python-client-release - version: ${{ needs.bump-dev-number.outputs.new_version }} + version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index be5c0eff60..99e8eb88ad 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -2,12 +2,13 @@ name: Valgrind run-name: Valgrind (registry-name=${{ inputs.registry-name }}, server-tag=${{ inputs.server-tag }}, test-file=${{ inputs.test-file }}, massif=${{ inputs.massif }}) on: - workflow_dispatch: + workflow_dispatch: &workflow_inputs inputs: test-file: description: 'new_test/' required: false default: "" + type: string registry-name: type: string required: false @@ -22,11 +23,13 @@ on: required: false description: Server tag default: latest + type: string massif: type: boolean description: 'Use massif for testing memory usage' required: false default: false + workflow_call: *workflow_inputs env: PYTHON_TAG: cp310 From 255d1290e577e815e92b99ce77dba295115fb37d Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 2 Jan 2026 14:11:47 -0800 Subject: [PATCH 28/72] Add back dev-workflow-part2.yml. It will be used to tag commits but not bump the version anymore --- .github/workflows/dev-workflow-part2.yml | 41 ++++++++++++ .../run-dev-tests-and-promote-to-dev.yml | 67 ++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/dev-workflow-part2.yml diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml new file mode 100644 index 0000000000..955d8f73bc --- /dev/null +++ b/.github/workflows/dev-workflow-part2.yml @@ -0,0 +1,41 @@ +name: Dev workflow (part 2) + +on: + # This will ignore bump commits because those commits have [skip ci] + push: + branches: + - 'dev*' + workflow_dispatch: + +jobs: + bump-dev-number: + uses: ./.github/workflows/bump-version.yml + with: + change: 'bump-dev-num' + secrets: inherit + + rebuild-artifacts-with-new-dev-num: + needs: bump-dev-number + name: Rebuild artifacts with new dev number + uses: ./.github/workflows/build-artifacts.yml + with: + # On pull_request_target, the bump version commit will be ignored + # So we must pass it manually to the workflow + sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} + secrets: inherit + + upload-to-jfrog: + name: Upload artifacts to JFrog + needs: [ + bump-dev-number, + rebuild-artifacts-with-new-dev-num + ] + uses: ./.github/workflows/upload-to-jfrog.yml + with: + version: ${{ needs.bump-dev-number.outputs.new_version }} + secrets: inherit + + # We don't want the artifacts in JFrog to also exist in Github + delete-artifacts: + needs: upload-to-jfrog + uses: ./.github/workflows/delete-artifacts.yml diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index e126746984..5792b061be 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -6,19 +6,84 @@ on: default: false type: boolean description: Don't create release bundle + # These inputs are in case we need to test against a server RC + registry-name: + type: string + required: true + description: Registry name + default: 'docker.io' + image-name: + type: string + required: true + description: Image name + default: 'aerospike/aerospike-server-enterprise' + server-tag: + type: string + required: true + default: 'latest' + description: 'Server docker image tag (e.g to test a client backport version)' jobs: run-dev-tests: uses: ./.github/workflows/build-artifacts.yml secrets: inherit + with: + run_tests: true + registry-name: ${{ inputs.registry-name }} + image-name: ${{ inputs.image-name }} + server-tag: ${{ inputs.server-tag }} # TODO: this should be run in parallel with build-artifacts after the manylinux wheel test has passed. - # TODO: this should use a wheel built from run-dev-tests + # TODO: add input to disable look-for-wheel-in-jfrog job valgrind: needs: run-dev-tests uses: ./.github/workflows/valgrind.yml with: massif: false + registry-name: ${{ inputs.registry-name }} + image-name: ${{ inputs.image-name }} + server-tag: ${{ inputs.server-tag }} + + reupload-github-artifacts-as-one: + needs: valgrind + name: Reupload Github artifacts as one artifact + runs-on: ubuntu-22.04 + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@df199fb7be9f65074067a9eb93f12bb4c5547cf2 # v2.13.3 + with: + egress-policy: audit + + - name: Download artifacts + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + pattern: '*.build' + merge-multiple: true + path: artifacts + + - name: Reupload artifacts as one + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + # Not actually signed... + name: signed-artifacts + path: ./artifacts + + upload-github-artifacts-as-jfrog-build: + needs: [ + reupload-github-artifacts-as-one, + + ] + uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 + with: + jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + jf-build-name: ${{ vars.JFROG_BUILD_NAME }} + jf-build-id: ${{ github.run_number }} + jf-metadata-build-id: ${{ github.run_number }}-metadata + gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 + version: ${{ needs.bump-dev-number.outputs.new_version }} + dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} + oidc-audience: ${{ vars.OIDC_AUDIENCE }} create-jfrog-release-bundle: needs: [ From f246032e1a8a7b0809dd5b792a2f072a2566f7c1 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 2 Jan 2026 14:31:28 -0800 Subject: [PATCH 29/72] Todo wip --- .github/workflows/bump-version.yml | 10 ++++++---- .github/workflows/dev-workflow-part2.yml | 6 +++--- .github/workflows/update-version.yml | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index 3c3c82f49d..9c91757b25 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -47,8 +47,6 @@ on: outputs: new_version: value: ${{ jobs.get-new-version.outputs.new_version }} - bump_sha: - value: ${{ jobs.update-version-in-repo.outputs.bump_sha }} jobs: get-current-version: @@ -67,10 +65,14 @@ jobs: with: token: ${{ secrets.CLIENT_BOT_PAT }} ref: ${{ inputs.ref }} + # Get all tags + fetch-depth: 0 - - name: Get current version + - name: Get tag from previous commit id: get-current-version - run: echo current_version=$(cat VERSION) >> $GITHUB_OUTPUT + run: | + prev_commit=$(git rev-parse HEAD~) + echo current_version=$(git describe --tags --exact-match $prev_commit) >> $GITHUB_OUTPUT get-new-version: runs-on: ubuntu-22.04 diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index 955d8f73bc..a8f4f488b0 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -8,14 +8,14 @@ on: workflow_dispatch: jobs: - bump-dev-number: + tag-new-commit-with-dev-number: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' secrets: inherit rebuild-artifacts-with-new-dev-num: - needs: bump-dev-number + needs: tag-new-commit-with-dev-number name: Rebuild artifacts with new dev number uses: ./.github/workflows/build-artifacts.yml with: @@ -27,7 +27,7 @@ jobs: upload-to-jfrog: name: Upload artifacts to JFrog needs: [ - bump-dev-number, + tag-new-commit-with-dev-number, rebuild-artifacts-with-new-dev-num ] uses: ./.github/workflows/upload-to-jfrog.yml diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index b35485511a..71c377debe 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -72,7 +72,7 @@ jobs: commit_message: 'Auto-bump version to ${{ inputs.new_version }} [skip ci]' commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> tagging_message: ${{ inputs.dry-run == false && inputs.new_version || '' }} - branch: ${{ inputs.is_workflow_call && inputs.ref || github.ref }} + branch: ${{ inputs.new_version }} - name: Output bump commit hash for next jobs to use id: get-bump-commit-sha From 0076fc7018894fa1564ec47d6b91f1f15409aeb7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 2 Jan 2026 16:40:25 -0800 Subject: [PATCH 30/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 5792b061be..1f69683af0 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -64,14 +64,14 @@ jobs: - name: Reupload artifacts as one uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: - # Not actually signed... + # TODO: Not actually signed... name: signed-artifacts path: ./artifacts upload-github-artifacts-as-jfrog-build: needs: [ reupload-github-artifacts-as-one, - + run-dev-tests ] uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 with: @@ -80,14 +80,14 @@ jobs: jf-build-id: ${{ github.run_number }} jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 - version: ${{ needs.bump-dev-number.outputs.new_version }} + version: ${{ needs.run-dev-tests.outputs.build-version }} dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} create-jfrog-release-bundle: needs: [ - valgrind, + upload-github-artifacts-as-jfrog-build, run-dev-tests ] uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 From 2163d703d01fcfd275d18bac977dd201c016a024 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 09:51:52 -0800 Subject: [PATCH 31/72] Resolve warnings about permissions --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 1f69683af0..de0580fd71 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -1,3 +1,6 @@ +permissions: + contents: read + on: workflow_dispatch: inputs: From 83e32cde4ab55e92f92e23fc70c76af6f79371d4 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:05:47 -0800 Subject: [PATCH 32/72] Valgrind: have option to use github artifact instead of jfrog artifact --- .../run-dev-tests-and-promote-to-dev.yml | 7 ++- .github/workflows/valgrind.yml | 49 ++++++++++++++++--- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index de0580fd71..f358825947 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -36,8 +36,6 @@ jobs: image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} - # TODO: this should be run in parallel with build-artifacts after the manylinux wheel test has passed. - # TODO: add input to disable look-for-wheel-in-jfrog job valgrind: needs: run-dev-tests uses: ./.github/workflows/valgrind.yml @@ -96,8 +94,9 @@ jobs: uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 with: jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + # : jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} - jf-bundle-name: python-client-release + jf-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} @@ -110,6 +109,6 @@ jobs: ] uses: ./.github/workflows/promote-release-bundle.yml with: - release-bundle-name: python-client-release + release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} new-environment: DEV diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 99e8eb88ad..309bb6564d 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -2,7 +2,7 @@ name: Valgrind run-name: Valgrind (registry-name=${{ inputs.registry-name }}, server-tag=${{ inputs.server-tag }}, test-file=${{ inputs.test-file }}, massif=${{ inputs.massif }}) on: - workflow_dispatch: &workflow_inputs + workflow_dispatch: inputs: test-file: description: 'new_test/' @@ -29,13 +29,46 @@ on: description: 'Use massif for testing memory usage' required: false default: false - workflow_call: *workflow_inputs + workflow_call: + inputs: + test-file: + description: 'new_test/' + required: false + default: "" + type: string + registry-name: + type: string + required: false + description: Registry name + default: 'docker.io' + image-name: + type: string + required: false + description: Image name + default: 'aerospike/aerospike-server-enterprise' + server-tag: + required: false + description: Server tag + default: latest + type: string + massif: + type: boolean + description: 'Use massif for testing memory usage' + required: false + default: false + # Workflow call specific inputs + # Will be false for workflow_dispatch trigger + download-wheel-from-github-artifacts: + type: boolean + required: false + default: true env: PYTHON_TAG: cp310 jobs: look-for-wheel-in-jfrog: + if: ${{ inputs.download-wheel-from-github-artifacts == false }} outputs: num_artifacts_found: ${{ steps.count_num_artifacts_found.outputs.num_artifacts }} # So we can pass the python tag to a reusable workflow @@ -104,7 +137,7 @@ jobs: build-manylinux-wheel: needs: look-for-wheel-in-jfrog - if: ${{ needs.look-for-wheel-in-jfrog.outputs.num_artifacts_found == 0 }} + if: ${{ !cancelled() && needs.look-for-wheel-in-jfrog.result == 'success' && needs.look-for-wheel-in-jfrog.outputs.num_artifacts_found == 0 }} uses: ./.github/workflows/build-wheels.yml with: python-tags: '["${{ needs.look-for-wheel-in-jfrog.outputs.python-tag }}"]' @@ -127,12 +160,12 @@ jobs: env: MASSIF_REPORT_FILE_NAME: massif.out needs: [ - look-for-wheel-in-jfrog, - build-manylinux-wheel + upload-built-wheel-to-jfrog ] - # Case 1: Found artifact in JFrog - # Case 2: Did not find artifact in JFrog, had to build it in GHA - if: ${{ !cancelled() && (needs.look-for-wheel-in-jfrog.result == 'success' && (needs.look-for-wheel-in-jfrog.outputs.num_artifacts_found == 1) || (needs.look-for-wheel-in-jfrog.outputs.num_artifacts_found == 0 && needs.build-manylinux-wheel.result == 'success')) }} + # Case 1: Did not find artifact in JFrog, had to build it in GHA + # Case 2: Found artifact in JFrog + # Case 3: Not using JFrog artifact (i.e using wheel from Github artifact) + if: ${{ !cancelled() && (needs.upload-built-wheel-to-jfrog.result == 'success' || needs.upload-built-wheel-to-jfrog.result == 'skipped') }} runs-on: ubuntu-22.04 steps: - name: Harden the runner (Audit all outbound calls) From bfae492e1c0197574a23c835a831b79d27633962 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:07:56 -0800 Subject: [PATCH 33/72] Register --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index f358825947..20ae03b425 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -2,6 +2,7 @@ permissions: contents: read on: + pull_request: workflow_dispatch: inputs: dry-run: From d5713c360a38d07eea3cddb3bc754696309f4fb0 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:09:56 -0800 Subject: [PATCH 34/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 20ae03b425..d16617b142 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -36,6 +36,7 @@ jobs: registry-name: ${{ inputs.registry-name }} image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} + sha-to-build-and-test: ${{ github.sha }} valgrind: needs: run-dev-tests From 27061168f1c15a012671adce33ec1403cfb0b187 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:10:15 -0800 Subject: [PATCH 35/72] Revert "Register" This reverts commit bfae492e1c0197574a23c835a831b79d27633962. --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index d16617b142..ea7c10ac2d 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -2,7 +2,6 @@ permissions: contents: read on: - pull_request: workflow_dispatch: inputs: dry-run: From 293a21b159f036bb4caa9253dcb5b821ca47d30c Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:12:20 -0800 Subject: [PATCH 36/72] Both reusable workflows need this permission --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index ea7c10ac2d..f9263be821 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -86,6 +86,8 @@ jobs: dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} + permissions: + id-token: write create-jfrog-release-bundle: needs: [ @@ -103,6 +105,8 @@ jobs: dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} + permissions: + id-token: write promote-release-bundle-to-dev: needs: [ From 7a3f55a97e9efb6b1545b671ed568acc428b41ef Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:15:25 -0800 Subject: [PATCH 37/72] Calling workflow permissions cannot be elevated --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index f9263be821..d283942047 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -1,5 +1,6 @@ permissions: contents: read + id-token: write on: workflow_dispatch: @@ -86,8 +87,6 @@ jobs: dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - permissions: - id-token: write create-jfrog-release-bundle: needs: [ @@ -105,8 +104,6 @@ jobs: dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - permissions: - id-token: write promote-release-bundle-to-dev: needs: [ From 9e2f5a4ff6a0c1fb51cc5fa6498e407629fda322 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:18:06 -0800 Subject: [PATCH 38/72] Fix permissions --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index d283942047..7972658058 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -1,6 +1,10 @@ permissions: + # We are building the artifacts in build-artifacts.yml contents: read + # For shared reusable workflows + # TODO: look into more id-token: write + statuses: write on: workflow_dispatch: From 1b2e98127fe5f3bcc8f17f2bc8b73b5131ea4e8a Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 12:43:14 -0800 Subject: [PATCH 39/72] fix ghcr.io docker images not being pulled --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 7972658058..079db3365a 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -5,6 +5,8 @@ permissions: # TODO: look into more id-token: write statuses: write + # For downloading docker images from ghcr.io + packages: read on: workflow_dispatch: From 424a09c039511402272a194f43e18235171e8e4b Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 13:32:19 -0800 Subject: [PATCH 40/72] Add test-file input to speed up debugging. --- .../run-dev-tests-and-promote-to-dev.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 079db3365a..872138c204 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -11,11 +11,6 @@ permissions: on: workflow_dispatch: inputs: - dry-run: - required: false - default: false - type: boolean - description: Don't create release bundle # These inputs are in case we need to test against a server RC registry-name: type: string @@ -32,6 +27,16 @@ on: required: true default: 'latest' description: 'Server docker image tag (e.g to test a client backport version)' + # For testing purposes + dry-run: + required: false + default: false + type: boolean + description: Don't create release bundle + test-file: + required: false + type: string + description: For speeding up debugging jobs: run-dev-tests: @@ -43,6 +48,7 @@ jobs: image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} sha-to-build-and-test: ${{ github.sha }} + test-file: ${{ inputs.test-file }} valgrind: needs: run-dev-tests @@ -52,6 +58,7 @@ jobs: registry-name: ${{ inputs.registry-name }} image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} + test-file: ${{ inputs.test-file }} reupload-github-artifacts-as-one: needs: valgrind From 11755d30f19fa840f14dca82689a70c895c79286 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 13:47:38 -0800 Subject: [PATCH 41/72] Only download a specific artifact and not all artifacts --- .github/workflows/valgrind.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 309bb6564d..538297114a 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -189,7 +189,7 @@ jobs: - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: - merge-multiple: true + name: ${{ env.PYTHON_TAG }}-manylinux_x86_64.build - name: Install client run: pip install ./*.whl From e7743305c07b82595f9f4e7a911ab73507e5249f Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 13:50:48 -0800 Subject: [PATCH 42/72] Add inputs to run name to make easier to find test runs --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 872138c204..6eb54ceb0a 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -1,3 +1,6 @@ +name: Run dev tests and promote release bundle to DEV +run-name: Run dev tests and promote release bundle to DEV (dry-run=${{ inputs.dry-run }}, test-file=${{ inputs.test-file }}) + permissions: # We are building the artifacts in build-artifacts.yml contents: read From 14795a7a6fff875c1a92b9ca75a7b772ac46a730 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 14:07:02 -0800 Subject: [PATCH 43/72] Reusable workflow must inherit secrets to access them --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 6eb54ceb0a..b23f893a52 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -62,6 +62,7 @@ jobs: image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} test-file: ${{ inputs.test-file }} + secrets: inherit reupload-github-artifacts-as-one: needs: valgrind From c976de53b01b905a0ab350faa7313ffeaac65f1e Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 14:24:30 -0800 Subject: [PATCH 44/72] We want valgrind job to pass to test the other jobs downstream --- .github/workflows/valgrind.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 538297114a..3516c84052 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -215,7 +215,8 @@ jobs: - run: echo VALGRIND_ARGS="--leak-check=full" >> $GITHUB_ENV if: ${{ !inputs.massif }} - - run: PYTHONMALLOC=malloc valgrind --error-exitcode=1 ${{ env.VALGRIND_ARGS }} python3 -m pytest -v new_tests/${{ github.event.inputs.test-file }} + # TODO: removed --error-exitcode=1 for testing purposes + - run: PYTHONMALLOC=malloc valgrind ${{ env.VALGRIND_ARGS }} python3 -m pytest -v new_tests/${{ github.event.inputs.test-file }} working-directory: test # TODO: upload report as artifact From 1efd797241ec96cd273fc0e9a32876699bcb0ae9 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 14:33:50 -0800 Subject: [PATCH 45/72] TODO WIP --- .github/workflows/dev-workflow-part2.yml | 9 +++++++++ .github/workflows/update-version.yml | 22 +++++++++++----------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index a8f4f488b0..d34c466bba 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -6,12 +6,19 @@ on: branches: - 'dev*' workflow_dispatch: + inputs: + dry-run: + description: Don't create tag in repo + type: boolean + required: false + default: true jobs: tag-new-commit-with-dev-number: uses: ./.github/workflows/bump-version.yml with: change: 'bump-dev-num' + dry-run: ${{ inputs.dry-run }} secrets: inherit rebuild-artifacts-with-new-dev-num: @@ -22,6 +29,7 @@ jobs: # On pull_request_target, the bump version commit will be ignored # So we must pass it manually to the workflow sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} + override-version: ${{ needs.tag-new-commit-with-dev-number.outputs.new_version }} secrets: inherit upload-to-jfrog: @@ -33,6 +41,7 @@ jobs: uses: ./.github/workflows/upload-to-jfrog.yml with: version: ${{ needs.bump-dev-number.outputs.new_version }} + dry-run: ${{ inputs.dry-run }} secrets: inherit # We don't want the artifacts in JFrog to also exist in Github diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml index 71c377debe..935a2c0cf3 100644 --- a/.github/workflows/update-version.yml +++ b/.github/workflows/update-version.yml @@ -61,19 +61,19 @@ jobs: token: ${{ secrets.CLIENT_BOT_PAT }} ref: ${{ inputs.ref }} - - name: Update version in repo - uses: ./.github/actions/update-version - with: - new_version: ${{ inputs.new_version }} + # - name: Update version in repo + # uses: ./.github/actions/update-version + # with: + # new_version: ${{ inputs.new_version }} - - name: Commit new version + - name: Tag new version uses: step-security/git-auto-commit-action@905c3cd6e9ed2b67b4d46ff401fdb6d745d0ff9d # v7.1.0 with: - commit_message: 'Auto-bump version to ${{ inputs.new_version }} [skip ci]' - commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> + # commit_message: 'Auto-bump version to ${{ inputs.new_version }} [skip ci]' + # commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> tagging_message: ${{ inputs.dry-run == false && inputs.new_version || '' }} - branch: ${{ inputs.new_version }} + # branch: ${{ inputs.new_version }} - - name: Output bump commit hash for next jobs to use - id: get-bump-commit-sha - run: echo "bump_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + # - name: Output bump commit hash for next jobs to use + # id: get-bump-commit-sha + # run: echo "bump_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT From 951fab3953af5428e8ab0876c3c5e8aa2bef70d7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 14:47:25 -0800 Subject: [PATCH 46/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + .github/workflows/valgrind.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index b23f893a52..8b7e3c1d70 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -87,6 +87,7 @@ jobs: # TODO: Not actually signed... name: signed-artifacts path: ./artifacts + if-no-files-found: error upload-github-artifacts-as-jfrog-build: needs: [ diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 3516c84052..27f73a0ca3 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -232,5 +232,5 @@ jobs: valgrind ] # Workflow run must clean up after itself even if cancelled - if: ${{ always() }} + if: ${{ always() && github.event_name == 'workflow_dispatch' }} uses: ./.github/workflows/delete-artifacts.yml From 5fce493b4619164885dd9ae52e3086256edea9d0 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:06:54 -0800 Subject: [PATCH 47/72] Forgot that workflow_call is not set in github.event_name --- .github/workflows/valgrind.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 27f73a0ca3..5d07059411 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -232,5 +232,5 @@ jobs: valgrind ] # Workflow run must clean up after itself even if cancelled - if: ${{ always() && github.event_name == 'workflow_dispatch' }} + if: ${{ always() && inputs.download-wheel-from-github-artifacts == false }} uses: ./.github/workflows/delete-artifacts.yml From 1b7924e5f84bc9567c94ad81adf1f05032f93844 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:35:03 -0800 Subject: [PATCH 48/72] fix --- .github/workflows/build-sdist.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-sdist.yml b/.github/workflows/build-sdist.yml index a3f9e0f530..0912ff19b6 100644 --- a/.github/workflows/build-sdist.yml +++ b/.github/workflows/build-sdist.yml @@ -54,7 +54,7 @@ jobs: run: python3 -m build --sdist - id: get-sdist-version - run: export "version=$(cat VERSION)" >> $GITHUB_OUTPUT + run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT - name: Upload source distribution to GitHub uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 From 97f55e0d6b3006fd3a6b491d4ced10736070bdc7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 09:05:12 -0800 Subject: [PATCH 49/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 8b7e3c1d70..b325ea71ad 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -130,5 +130,5 @@ jobs: uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} - release-bundle-version: ${{ needs.bump-dev-number.outputs.new_version }} + release-bundle-version: ${{ needs.run-dev-tests.outputs.new_version }} new-environment: DEV From ac98873366adfec9fa53839cdc9ec8df0a8ecbf5 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 09:57:49 -0800 Subject: [PATCH 50/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index b325ea71ad..25ebb23460 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -125,7 +125,8 @@ jobs: promote-release-bundle-to-dev: needs: [ - create-jfrog-release-bundle + create-jfrog-release-bundle, + run-dev-tests ] uses: ./.github/workflows/promote-release-bundle.yml with: From 7f49a576a84ebc97ca510d677c77949ffe1a0db6 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:13:43 -0800 Subject: [PATCH 51/72] fix.. --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 25ebb23460..80d3a54faa 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -131,5 +131,5 @@ jobs: uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} - release-bundle-version: ${{ needs.run-dev-tests.outputs.new_version }} + release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }} new-environment: DEV From 0cd96e82bc29d686df58f396dd0a78f389102e6c Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 10:49:46 -0800 Subject: [PATCH 52/72] just use this for now --- .github/workflows/promote-release-bundle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index b0efc79430..4b62a9a399 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -18,7 +18,7 @@ jobs: - name: Setup JFrog CLI uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: - JF_URL: https://artifact.aerospike.io + JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} From 7554b36bb2427bacde96452d532d8758a3b66516 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 11:02:02 -0800 Subject: [PATCH 53/72] Add ability to skip dev tests in case self hosted runners are being used concurrently --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 80d3a54faa..27d418fc1d 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -36,6 +36,11 @@ on: default: false type: boolean description: Don't create release bundle + run_tests: + required: false + default: false + type: boolean + description: Run dev tests test-file: required: false type: string @@ -46,7 +51,7 @@ jobs: uses: ./.github/workflows/build-artifacts.yml secrets: inherit with: - run_tests: true + run_tests: ${{ inputs.run_tests }} registry-name: ${{ inputs.registry-name }} image-name: ${{ inputs.image-name }} server-tag: ${{ inputs.server-tag }} From 2147e1eac6e769ba00e77d1ef75709c124d0453e Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:44:20 -0800 Subject: [PATCH 54/72] Fix... --- .github/workflows/promote-release-bundle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index 4b62a9a399..b51f70444b 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -19,7 +19,7 @@ jobs: uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} - jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + JF_PROJECT: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} From b1ffab4774979818fe61af953094edb24f017f5c Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:45:44 -0800 Subject: [PATCH 55/72] Revert "just use this for now" This reverts commit 0cd96e82bc29d686df58f396dd0a78f389102e6c. --- .github/workflows/promote-release-bundle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index b51f70444b..74dee71e4b 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -18,7 +18,7 @@ jobs: - name: Setup JFrog CLI uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: - JF_URL: ${{ secrets.JFROG_PLATFORM_URL }} + JF_URL: https://artifact.aerospike.io JF_PROJECT: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} From d44f31d7c928b0947eb9dfd084dcdb490240e6f9 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:55:37 -0800 Subject: [PATCH 56/72] fix --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 27d418fc1d..c138e2c127 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -136,5 +136,5 @@ jobs: uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} - release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }} + release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} new-environment: DEV From 460b4a8e193e688d93442ad2092d5549651572ef Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 15:29:53 -0800 Subject: [PATCH 57/72] Try passing signing-key --- .github/workflows/promote-release-bundle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index 74dee71e4b..686942ff33 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -24,4 +24,4 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - run: jf rbp ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} + - run: jf rbp --signing-key=aerospike ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} From d24575e86f82efc6ee4055c2765acbb7689244e7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 15:30:25 -0800 Subject: [PATCH 58/72] Jerry rig for testing --- .../run-dev-tests-and-promote-to-dev.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index c138e2c127..21ef9efe1c 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -58,19 +58,19 @@ jobs: sha-to-build-and-test: ${{ github.sha }} test-file: ${{ inputs.test-file }} - valgrind: - needs: run-dev-tests - uses: ./.github/workflows/valgrind.yml - with: - massif: false - registry-name: ${{ inputs.registry-name }} - image-name: ${{ inputs.image-name }} - server-tag: ${{ inputs.server-tag }} - test-file: ${{ inputs.test-file }} - secrets: inherit + # valgrind: + # needs: run-dev-tests + # uses: ./.github/workflows/valgrind.yml + # with: + # massif: false + # registry-name: ${{ inputs.registry-name }} + # image-name: ${{ inputs.image-name }} + # server-tag: ${{ inputs.server-tag }} + # test-file: ${{ inputs.test-file }} + # secrets: inherit reupload-github-artifacts-as-one: - needs: valgrind + needs: run-dev-tests name: Reupload Github artifacts as one artifact runs-on: ubuntu-22.04 steps: From b499f09d9b4c215f1f4babe2218a1c72fcda7009 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 15:56:09 -0800 Subject: [PATCH 59/72] Push to a specific repo to avoid pushing to all repos mapping to DEV environment --- .github/workflows/promote-release-bundle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index 686942ff33..7d0c02f4d4 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -24,4 +24,4 @@ jobs: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - run: jf rbp --signing-key=aerospike ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} + - run: jf rbp --signing-key=aerospike --include-repos ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }}-generic-dev-local ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} From 3315d8c58a1d2807731b21e532804e7aae17709d Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 6 Jan 2026 16:30:03 -0800 Subject: [PATCH 60/72] leave as todo for now. --- .github/actions/get-artifact-for-stage-tests/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/get-artifact-for-stage-tests/action.yml b/.github/actions/get-artifact-for-stage-tests/action.yml index 94ebf80c04..883d0dc1ed 100644 --- a/.github/actions/get-artifact-for-stage-tests/action.yml +++ b/.github/actions/get-artifact-for-stage-tests/action.yml @@ -78,5 +78,6 @@ runs: - name: Download artifact from JFrog if: ${{ inputs.get_from_jfrog == 'true' }} - run: jf rt dl --fail-no-op --flat --build python-client/${{ inputs.jfrog_build_version }} "${{ inputs.JFROG_REPO_NAME }}/**/${{ env.ARTIFACT_FILE_NAME_PATTERN }}" + # TODO: download latest build in dev repo somehow + run: jf rt dl --fail-no-op --bundle python-client-release/18.2.0rc1.dev15-26 'database-generic-dev-local/*.whl' shell: bash From 6dab600be2fa5eb75d854c5a884fa3512d223ac7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:57:30 -0800 Subject: [PATCH 61/72] Test changes in my PR --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 21ef9efe1c..cb79f7e2c3 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -99,13 +99,13 @@ jobs: reupload-github-artifacts-as-one, run-dev-tests ] - uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@489212b8911ea431131ed468599db705f0767274 + uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@CLIENT-3467-add-support-for-pypi-type-repos-in-jfrog with: jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} jf-build-name: ${{ vars.JFROG_BUILD_NAME }} jf-build-id: ${{ github.run_number }} jf-metadata-build-id: ${{ github.run_number }}-metadata - gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 + gh-workflows-ref: CLIENT-3467-add-support-for-pypi-type-repos-in-jfrog version: ${{ needs.run-dev-tests.outputs.build-version }} dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} From 6b27148242e4947cfba874c5f72a5239998f8e84 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:22:01 -0800 Subject: [PATCH 62/72] For dry running, don't promote release bundle --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index cb79f7e2c3..1063eae672 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -133,6 +133,7 @@ jobs: create-jfrog-release-bundle, run-dev-tests ] + if: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} From fa5204e989ea5af50213048fd602ff3f68e7f9b4 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:25:20 -0800 Subject: [PATCH 63/72] Since this workflow is only run manually, don't check for push events --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 1063eae672..f898521429 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -107,7 +107,7 @@ jobs: jf-metadata-build-id: ${{ github.run_number }}-metadata gh-workflows-ref: CLIENT-3467-add-support-for-pypi-type-repos-in-jfrog version: ${{ needs.run-dev-tests.outputs.build-version }} - dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + dry-run: ${{ inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} @@ -124,7 +124,7 @@ jobs: jf-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 - dry-run: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + dry-run: ${{ inputs.dry-run }} oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} @@ -133,7 +133,7 @@ jobs: create-jfrog-release-bundle, run-dev-tests ] - if: ${{ github.event_name == 'push' && endsWith(github.ref, '-test') || inputs.dry-run }} + if: ${{ inputs.dry-run }} uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} From 816b9013e20690e23a0e2a2713e61bd5d0d77e52 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 14:43:42 -0800 Subject: [PATCH 64/72] fix workflow --- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index f898521429..2c22b29330 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -133,7 +133,8 @@ jobs: create-jfrog-release-bundle, run-dev-tests ] - if: ${{ inputs.dry-run }} + # jf rbp doesn't have a dry run option + if: ${{ !inputs.dry-run }} uses: ./.github/workflows/promote-release-bundle.yml with: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} From fb84775c798ebd019ad7fecd6f5e9f78ba1ade09 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 14:58:52 -0800 Subject: [PATCH 65/72] have jf rbp composite action take in the repo name to allow other teams to use it. --- .github/workflows/promote-release-bundle.yml | 7 +++++-- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index 7d0c02f4d4..bf98037ecb 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -10,6 +10,9 @@ on: new-environment: type: string required: true + jfrog-repo-name: + type: string + required: true jobs: promote-release-bundle-to-dev: @@ -19,9 +22,9 @@ jobs: uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: JF_URL: https://artifact.aerospike.io - JF_PROJECT: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} + JF_PROJECT: ${{ vars.JFROG_PYPI_REPO_FOR_CLIENT_TEAM }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - run: jf rbp --signing-key=aerospike --include-repos ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }}-generic-dev-local ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} + - run: jf rbp --signing-key=aerospike --include-repos ${{ inputs.jfrog-repo-name }} ${{ inputs.release-bundle-name }} ${{ inputs.release-bundle-version }} ${{ inputs.new-environment }} diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 2c22b29330..a0833cf65b 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -140,3 +140,4 @@ jobs: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} new-environment: DEV + jfrog-repo-name: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }}-pypi-dev-local From 8db6b531e299057eb635a66b3dc8542c55ea29c7 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 15:19:03 -0800 Subject: [PATCH 66/72] Fix workflow. Also allow passing in JFrog project name to composite action --- .github/workflows/promote-release-bundle.yml | 5 ++++- .github/workflows/run-dev-tests-and-promote-to-dev.yml | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index bf98037ecb..6ba232085d 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -10,6 +10,9 @@ on: new-environment: type: string required: true + jfrog-project: + type: string + required: true jfrog-repo-name: type: string required: true @@ -22,7 +25,7 @@ jobs: uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: JF_URL: https://artifact.aerospike.io - JF_PROJECT: ${{ vars.JFROG_PYPI_REPO_FOR_CLIENT_TEAM }} + JF_PROJECT: ${{ inputs.jfrog-project }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index a0833cf65b..3511650b1a 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -140,4 +140,5 @@ jobs: release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} new-environment: DEV + jfrog-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} jfrog-repo-name: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }}-pypi-dev-local From 8f0665211c0b7130f2ecae3f5fa46750e233f958 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Wed, 25 Feb 2026 15:59:12 -0800 Subject: [PATCH 67/72] Make sure jf rbp also knows the project to use --- .github/workflows/promote-release-bundle.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/promote-release-bundle.yml b/.github/workflows/promote-release-bundle.yml index 6ba232085d..ecb8989f7a 100644 --- a/.github/workflows/promote-release-bundle.yml +++ b/.github/workflows/promote-release-bundle.yml @@ -20,12 +20,13 @@ on: jobs: promote-release-bundle-to-dev: runs-on: ubuntu-24.04 + env: + JF_PROJECT: ${{ inputs.jfrog-project }} steps: - name: Setup JFrog CLI uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1 env: JF_URL: https://artifact.aerospike.io - JF_PROJECT: ${{ inputs.jfrog-project }} with: oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} oidc-audience: ${{ vars.OIDC_AUDIENCE }} From de1ee5fbbb2bd6ccbaf4e5ee8531a01196bb4bd4 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 26 Feb 2026 14:21:53 -0800 Subject: [PATCH 68/72] Create new revision to test release bundle workflow. Cannot delete release bundle of previous commit From 0af4ff5b9200498c93034c584d26066cd523d83f Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:46:07 -0800 Subject: [PATCH 69/72] Download artifact from latest release bundle --- .github/actions/get-artifact-for-stage-tests/action.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/actions/get-artifact-for-stage-tests/action.yml b/.github/actions/get-artifact-for-stage-tests/action.yml index b9c6f90671..c638560fa8 100644 --- a/.github/actions/get-artifact-for-stage-tests/action.yml +++ b/.github/actions/get-artifact-for-stage-tests/action.yml @@ -78,6 +78,11 @@ runs: - name: Download artifact from JFrog if: ${{ inputs.get_from_jfrog == 'true' }} - # TODO: download latest build in dev repo somehow - run: jf rt dl --fail-no-op --bundle python-client-release/18.2.0rc1.dev15-26 'database-generic-dev-local/*.whl' + run: | + bundle_version=$(jf rbs --format json --order-by created --project database versions python-client-release | jq -r '.release_bundles[0].release_bundle_version') + # Currently no way to download specific artifacts from a release bundle + # Using ARTIFACT_FILE_NAME_PATTERN with jf rt dl --bundle doesn't work + build_number="${bundle_version##*-}" + artifact_path=$(jf rt s --project database --fail-no-op --build python-client/$build_number "database-pypi-dev-local/**/$ARTIFACT_FILE_NAME_PATTERN" | jq -r '.[0].path') + jf rt dl --project database --fail-no-op --flat $artifact_path shell: bash From 3be525d1eb2ac20f9b9287e8d2c206836cf8b518 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:29:04 -0800 Subject: [PATCH 70/72] For now, don't bump and commit the new version in dev. --- .github/workflows/dev-workflow-part2.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-workflow-part2.yml b/.github/workflows/dev-workflow-part2.yml index d34c466bba..4651aa6ae9 100644 --- a/.github/workflows/dev-workflow-part2.yml +++ b/.github/workflows/dev-workflow-part2.yml @@ -28,8 +28,8 @@ jobs: with: # On pull_request_target, the bump version commit will be ignored # So we must pass it manually to the workflow - sha-to-build-and-test: ${{ needs.bump-dev-number.outputs.bump_sha }} - override-version: ${{ needs.tag-new-commit-with-dev-number.outputs.new_version }} + sha-to-build-and-test: ${{ github.sha }} + # override-version: ${{ needs.tag-new-commit-with-dev-number.outputs.new_version }} secrets: inherit upload-to-jfrog: From 1a9ee87fbfdb1115f8d30d4928fdc513e69f0a0c Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:29:01 -0700 Subject: [PATCH 71/72] WIP definitely not done --- .../run-dev-tests-and-promote-to-dev.yml | 104 ++---------------- 1 file changed, 12 insertions(+), 92 deletions(-) diff --git a/.github/workflows/run-dev-tests-and-promote-to-dev.yml b/.github/workflows/run-dev-tests-and-promote-to-dev.yml index 3511650b1a..757acaa13c 100644 --- a/.github/workflows/run-dev-tests-and-promote-to-dev.yml +++ b/.github/workflows/run-dev-tests-and-promote-to-dev.yml @@ -47,98 +47,18 @@ on: description: For speeding up debugging jobs: - run-dev-tests: - uses: ./.github/workflows/build-artifacts.yml - secrets: inherit - with: - run_tests: ${{ inputs.run_tests }} - registry-name: ${{ inputs.registry-name }} - image-name: ${{ inputs.image-name }} - server-tag: ${{ inputs.server-tag }} - sha-to-build-and-test: ${{ github.sha }} - test-file: ${{ inputs.test-file }} - - # valgrind: - # needs: run-dev-tests - # uses: ./.github/workflows/valgrind.yml - # with: - # massif: false - # registry-name: ${{ inputs.registry-name }} - # image-name: ${{ inputs.image-name }} - # server-tag: ${{ inputs.server-tag }} - # test-file: ${{ inputs.test-file }} - # secrets: inherit - - reupload-github-artifacts-as-one: - needs: run-dev-tests - name: Reupload Github artifacts as one artifact - runs-on: ubuntu-22.04 - steps: - - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@df199fb7be9f65074067a9eb93f12bb4c5547cf2 # v2.13.3 - with: - egress-policy: audit - - - name: Download artifacts - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 - with: - pattern: '*.build' - merge-multiple: true - path: artifacts - - - name: Reupload artifacts as one - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - # TODO: Not actually signed... - name: signed-artifacts - path: ./artifacts - if-no-files-found: error - - upload-github-artifacts-as-jfrog-build: - needs: [ - reupload-github-artifacts-as-one, - run-dev-tests - ] - uses: aerospike/shared-workflows/.github/workflows/reusable_deploy-artifacts.yaml@CLIENT-3467-add-support-for-pypi-type-repos-in-jfrog + dev-workflow: + uses: aerospike/shared-workflows/.github/workflows/reusable_artifacts-cicd.yaml@8f53b63b33d86e63aeb37d951283dd974574885b with: + gh-workflows-ref: 8f53b63b33d86e63aeb37d951283dd974574885b jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} jf-build-name: ${{ vars.JFROG_BUILD_NAME }} - jf-build-id: ${{ github.run_number }} - jf-metadata-build-id: ${{ github.run_number }}-metadata - gh-workflows-ref: CLIENT-3467-add-support-for-pypi-type-repos-in-jfrog - version: ${{ needs.run-dev-tests.outputs.build-version }} - dry-run: ${{ inputs.dry-run }} - oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} - oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - create-jfrog-release-bundle: - needs: [ - upload-github-artifacts-as-jfrog-build, - run-dev-tests - ] - uses: aerospike/shared-workflows/.github/workflows/reusable_create-release-bundle.yaml@489212b8911ea431131ed468599db705f0767274 - with: - jf-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - # : - jf-build-names: ${{ format('{0}:{1}', vars.JFROG_BUILD_NAME, github.run_number) }} - jf-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} - version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} - gh-workflows-ref: 489212b8911ea431131ed468599db705f0767274 - dry-run: ${{ inputs.dry-run }} - oidc-provider-name: ${{ vars.OIDC_PROVIDER_NAME }} - oidc-audience: ${{ vars.OIDC_AUDIENCE }} - - promote-release-bundle-to-dev: - needs: [ - create-jfrog-release-bundle, - run-dev-tests - ] - # jf rbp doesn't have a dry run option - if: ${{ !inputs.dry-run }} - uses: ./.github/workflows/promote-release-bundle.yml - with: - release-bundle-name: ${{ vars.JFROG_RELEASE_BUNDLE_NAME }} - release-bundle-version: ${{ needs.run-dev-tests.outputs.build-version }}-${{ github.run_number }} - new-environment: DEV - jfrog-project: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }} - jfrog-repo-name: ${{ vars.JFROG_PROJECT_FOR_CLIENT_TEAM }}-pypi-dev-local + # TODO: ${{ needs.run-dev-tests.outputs.build-version }}- needs to be applied to version + version: ${{ github.run_number }} + gh-artifact-directory: dist + build-script: | + make build + # Optional: + build-type: release # Freeform label, applied as build.type target-prop + internal: false # Set true to mark artifacts as internal-only + secrets: inherit From a2abc210843a8ab73ae31d0338ee85cba58edc65 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Tue, 17 Mar 2026 16:07:02 -0700 Subject: [PATCH 72/72] WIP on shell script that builds python client from source. This can be used both locally and on ci/cd, which is more helpful than cibuildwheel which only works for ci/cd. The downside is we need to manually update our build and repairing dependencies that cibuildwheel comes with --- .github/workflows/build-python-client.bash | 57 ++++++++++++++++++++++ .github/workflows/build-wheels.yml | 1 + 2 files changed, 58 insertions(+) create mode 100644 .github/workflows/build-python-client.bash diff --git a/.github/workflows/build-python-client.bash b/.github/workflows/build-python-client.bash new file mode 100644 index 0000000000..8aed497e87 --- /dev/null +++ b/.github/workflows/build-python-client.bash @@ -0,0 +1,57 @@ +# On macOS and Windows, this is expected to run on bare metal +# On Linux, this is expected to run in a container from the manylinux image +os=$(uname -s) +running_on_windows=$([[ "$os" =~ CYGWIN* || "$os" =~ MINGW* ]]) +if [[ $running_on_windows ]]; then + nuget restore +fi + +if [[ $os =~ Darwin* ]]; then + brew install openssl@3 libyaml + + export MACOSX_DEPLOYMENT_TARGET + MACOSX_DEPLOYMENT_TARGET="$(sw_vers -productVersion | cut -d"." -f 1).0" + + if [[ $(uname -m) == "arm64" ]]; then + libraries=('libyaml' 'openssl') + for library in "${libraries[@]}"; do + LIBRARY_PATH="${LIBRARY_PATH}:$(brew --prefix "$library")/lib" + done + export LIBRARY_PATH="$LIBRARY_PATH" + else + export LDFLAGS='-headerpad_max_install_names' + fi +fi + +if [[ $os =~ Linux* ]]; then + yum install libyaml-devel -y +fi + +python3 -m pip install build -c requirements.txt +python3 -m build + +if [[ $os =~ Linux* ]]; then + unrepaired_wheel_path=$(find dist/ -type f -name '*.whl' | head -n 1) + if [[ "$DEBUG" != "" ]]; then + auditwheel show "$unrepaired_wheel_path" + WHEEL_DIR=wheel-contents + unzip "$unrepaired_wheel_path" -d $WHEEL_DIR + ldd $WHEEL_DIR/*.so | awk '{print $1}' | grep libssl.so.3 + ldd $WHEEL_DIR/*.so | awk '{print $1}' | grep libcrypto.so.3 + fi + + auditwheel repair -w wheelhouse/ "$unrepaired_wheel_path" + + if [[ "$DEBUG" != "" ]]; then + auditwheel show wheelhouse/* + fi + + # TODO: This should happen if any steps after creating the dir fail + rm -rf "$WHEEL_DIR" +elif [[ $os =~ Darwin* ]]; then + delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} + delocate-listdeps {dest_dir}/*.whl | grep libcrypto.3.dylib + delocate-listdeps {dest_dir}/*.whl | grep libssl.3.dylib +elif [[ $running_on_windows ]]; then + delvewheel repair -vv --add-path ./aerospike-client-c/vs/x64/Release -w wheelhouse "$unrepaired_wheel_path" +fi diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 7b699850f5..eaf4a77805 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -263,6 +263,7 @@ jobs: - if: ${{ startsWith(inputs.platform-tag, 'manylinux') }} run: echo CIBW_MANYLINUX_AARCH64_IMAGE=${{ format(env.CUSTOM_IMAGE_NAME, 'aarch64', 'dadc371c3647efe5a1f3a7c99edddea1d8db542e3d2ad48bf63fa81364fb63b6') }} >> $GITHUB_ENV + # TODO: would need way to pull this outside of shared workflow - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 if: ${{ startsWith(inputs.platform-tag, 'manylinux') }} with: