diff --git a/.github/actions/build-and-test/action.yaml b/.github/actions/build-and-test/action.yaml
index ca46c4302..b3ff56403 100644
--- a/.github/actions/build-and-test/action.yaml
+++ b/.github/actions/build-and-test/action.yaml
@@ -14,15 +14,15 @@ inputs:
required: false
default: "latest"
description: "Server docker image tag"
- jfrog-docker-username:
+ oidc-provider:
required: true
description: ""
- jfrog-docker-token:
+ oidc-audience:
required: true
description: ""
run-tests:
required: true
- default: "false"
+ default: "true"
description: Spin up aerospike enterprise server and run tests
runs:
@@ -39,17 +39,17 @@ runs:
shell: bash
run: mvn clean install
- - name: Run EE server
+ - name: Run Aerospike
if: ${{ inputs.run-tests == 'true' }}
uses: ./.github/actions/run-ee-server
with:
use-server-rc: ${{ inputs.use-server-rc }}
server-tag: ${{ inputs.server-tag }}
- docker-hub-username: ${{ inputs.jfrog-docker-username }}
- docker-hub-password: ${{ inputs.jfrog-docker-token }}
+ oidc-provider: ${{ inputs.oidc-provider }}
+ oidc-audience: ${{ inputs.oidc-audience }}
- name: Run tests
shell: bash
- if: ${{ inputs.run-tests == true }}
+ if: ${{ inputs.run-tests == 'true' }}
working-directory: test
run: mvn test -DskipTests=false
diff --git a/.github/actions/publish-to-sonatype/action.yaml b/.github/actions/publish-to-sonatype/action.yaml
index 634b7e4e8..7f1fdf1e5 100644
--- a/.github/actions/publish-to-sonatype/action.yaml
+++ b/.github/actions/publish-to-sonatype/action.yaml
@@ -2,14 +2,6 @@ name: Publish artifacts to Sonatype
description: "Publishes artifacts to Sonatype"
inputs:
- jfrog-releases-repo-name:
- description: ""
- required: false
- default: clients-maven-dev-local
- jfrog-snapshots-repo-name:
- description: ""
- required: false
- default: clients-maven-dev-local
jfrog-platform-url:
description: ""
required: false
@@ -20,12 +12,6 @@ inputs:
oidc-audience:
description: ""
required: true
- artifact-name:
- description: ""
- required: true
- artifact-version:
- description: ""
- required: true
staging-folder:
description: ""
required: false
@@ -34,6 +20,12 @@ inputs:
description: ""
required: false
default: clients-maven-stage-local
+ build-name-number:
+ description: ""
+ required: true
+ artifact-version:
+ description: ""
+ required: true
runs:
using: "composite"
@@ -48,6 +40,24 @@ runs:
oidc-provider-name: ${{ inputs.oidc-provider }}
oidc-audience: ${{ inputs.oidc-audience }}
+ - name: Get info
+ shell: bash
+ id: get-build-info
+ run: |
+ INPUT=${{ inputs.build-name-number }}
+
+ BUILD_NAME="${INPUT%/*}" # Getting the build name
+ BUILD_NUMBER="${INPUT#*/}" # Getting build number
+
+ BUILD_INFO=$(jf rt curl "/api/build/${BUILD_NAME}/${BUILD_NUMBER}")
+ echo "build-info=${BUILD_INFO}" >> $GITHUB_OUTPUT
+
+ - name: Get build name
+ shell: bash
+ id: get-build-name
+ run: |
+ echo build-name=$(echo '${{ steps.get-build-info.outputs.build-info }}' | jq -r '.buildInfo.modules[].id | sub("/[0-9]+$"; "")') >> $GITHUB_OUTPUT
+
- name: Create staging folder
shell: bash
run: |
@@ -57,10 +67,10 @@ runs:
shell: bash
working-directory: ${{ inputs.staging-folder }}
run: |
- jf rt dl "${{ inputs.target-repository }}/com/aerospike/${{ inputs.artifact-name }}/${{ inputs.artifact-version }}/*" .
+ jf rt dl "${{ inputs.target-repository }}/com/aerospike/${{ steps.get-build-name.build-name }}/${{ inputs.artifact-version }}/*" .
- name: Debug list downloaded content
shell: bash
working-directory: ${{ inputs.staging-folder }}
run: |
- ls -la
+ ls -laR
diff --git a/.github/actions/run-ee-server/action.yaml b/.github/actions/run-ee-server/action.yaml
index 22510249c..97b3287c7 100644
--- a/.github/actions/run-ee-server/action.yaml
+++ b/.github/actions/run-ee-server/action.yaml
@@ -15,19 +15,26 @@ inputs:
required: false
description: Container repo url
default: aerospike.jfrog.io/docker/
- oidc-provider:
+ jfrog-platform-url:
description: ""
required: false
- default: gh-aerospike-clients
+ default: https://aerospike.jfrog.io
+ oidc-provider:
+ description: ""
+ required: true
oidc-audience:
description: ""
+ required: true
+ container-name:
+ default: aerospike
required: false
- default: aerospike/clients
+ description: Name for test container
runs:
using: "composite"
steps:
- name: Set up JFrog credentials
+ id: setup-jfrog-cli
uses: jfrog/setup-jfrog-cli@v4
env:
JF_URL: ${{ inputs.jfrog-platform-url }}
@@ -35,18 +42,30 @@ runs:
oidc-provider-name: ${{ inputs.oidc-provider }}
oidc-audience: ${{ inputs.oidc-audience }}
- - name: Log into Docker Hub to get server RC
- if: ${{ inputs.use-server-rc == 'true' }}
- run: docker login ${{ inputs.container-repo-url }} --username ${{ inputs.docker-hub-username }} --password ${{ inputs.docker-hub-password }}
+ - if: ${{ inputs.use-server-rc == 'true' }}
+ run: docker login ${{ inputs.container-repo-url }} --username ${{ steps.setup-jfrog-cli.outputs.oidc-user }} --password ${{ steps.setup-jfrog-cli.outputs.oidc-token }}
shell: bash
- run: echo IMAGE_NAME=${{ inputs.use-server-rc == 'true' && inputs.container-repo-url || '' }}aerospike/aerospike-server-enterprise${{ inputs.use-server-rc == 'true' && '-rc' || '' }}:${{ inputs.server-tag }} >> $GITHUB_ENV
shell: bash
- - run: docker run -d --name aerospike -p 3000:3000 ${{ env.IMAGE_NAME }}
+ - run: docker run -d --name ${{ inputs.container-name }} -p 3000:3000 ${{ env.IMAGE_NAME }}
shell: bash
- uses: ./.github/actions/wait-for-as-server-to-start
with:
- container-name: aerospike
+ container-name: ${{ inputs.container-name }}
is-security-enabled: true
+ is-strong-consistency-enabled: true
+
+ - run: docker exec ${{ inputs.container-name }} asadm --enable -e 'asinfo -v "roster-set:namespace=test;nodes=A1"'
+ shell: bash
+
+ - run: docker exec ${{ inputs.container-name }} asadm --enable -e 'asinfo -v revive:'
+ shell: bash
+
+ - run: docker exec ${{ inputs.container-name }} asadm --enable -e 'asinfo -v recluster:'
+ shell: bash
+
+ - run: docker logs ${{ inputs.container-name }}
+ shell: bash
diff --git a/.github/actions/wait-for-as-server-to-start/action.yaml b/.github/actions/wait-for-as-server-to-start/action.yaml
index 591c89434..d98c170dd 100644
--- a/.github/actions/wait-for-as-server-to-start/action.yaml
+++ b/.github/actions/wait-for-as-server-to-start/action.yaml
@@ -8,6 +8,10 @@ inputs:
description: Flag to toggle docker hub creds use. With this flag enabled before attempting to pull image we will attempt to log in do docker hub.
required: false
default: "false"
+ is-strong-consistency-enabled:
+ description: Flag to enable strong consistency
+ required: false
+ default: "false"
runs:
using: "composite"
@@ -18,5 +22,5 @@ runs:
# Also, we don't want to fail if we timeout in case the server *did* finish starting up but the script couldn't detect it due to a bug
# Effectively, this composite action is like calling "sleep" that is optimized to exit early when it detects an ok from the server
- name: Wait for EE server to start
- run: timeout 30 bash ./.github/workflows/scripts/wait-for-as-server-to-start.sh ${{ inputs.container-name }} ${{ inputs.is-security-enabled }} || true
+ run: timeout 30 bash ./.github/workflows/scripts/wait-for-as-server-to-start.sh ${{ inputs.container-name }} ${{ inputs.is-security-enabled }} ${{ inputs.is-strong-consistency-enabled }} || true
shell: bash
diff --git a/.github/workflows/aggregate-build.yaml b/.github/workflows/aggregate-build.yaml
index afe14b3ca..85ac136d8 100644
--- a/.github/workflows/aggregate-build.yaml
+++ b/.github/workflows/aggregate-build.yaml
@@ -25,7 +25,7 @@ on:
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
steps:
- name: Set up JFrog credentials l
id: setup-jfrog-cli
diff --git a/.github/workflows/build-dev.yaml b/.github/workflows/build-pr.yaml
similarity index 82%
rename from .github/workflows/build-dev.yaml
rename to .github/workflows/build-pr.yaml
index 1ca17a63e..b60775984 100644
--- a/.github/workflows/build-dev.yaml
+++ b/.github/workflows/build-pr.yaml
@@ -34,17 +34,8 @@ on:
description: Spin up aerospike enterprise server and run tests
jobs:
- debug-job:
- runs-on: ubuntu-latest
- steps:
- - name: debug
- run: |
- echo "${{ inputs.branch }}"
- echo "${{ github.base_ref }}"
-
java-version:
- needs: debug-job
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
outputs:
java-version: ${{ steps.get-java-version.outputs.java-version }}
steps:
@@ -62,14 +53,6 @@ jobs:
run: |
echo ${{ steps.get-java-version.outputs.java-version }}
- debug-java-version-job:
- runs-on: ubuntu-latest
- needs: java-version
- steps:
- - name: debug
- run: |
- echo "${{ needs.java-version.outputs.java-version }}"
-
build:
uses: ./.github/workflows/build.yaml
needs: java-version
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 34eaf7728..44b65de15 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -45,7 +45,7 @@ on:
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -58,22 +58,11 @@ jobs:
distribution: "semeru" # See 'Supported distributions' for available options
java-version: ${{ inputs.java-version }}
- # This is needed so we can authenticate and get the credentials to be able to pull AE RC from JFrog
- - name: Set up JFrog credentials
- id: setup-jfrog-cli
- uses: jfrog/setup-jfrog-cli@v4
- env:
- JF_URL: ${{ inputs.jfrog-platform-url }}
- with:
- version: 2.72.2
- oidc-provider-name: ${{ inputs.oidc-provider }}
- oidc-audience: ${{ inputs.oidc-audience }}
-
- name: Build and test
uses: ./.github/actions/build-and-test
with:
crypto-type: ${{ inputs.crypto-type }}
server-tag: ${{ inputs.server-tag }}
use-server-rc: ${{ inputs.use-server-rc }}
- jfrog-docker-username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }}
- jfrog-docker-token: ${{ steps.setup-jfrog-cli.outputs.oidc-token }}
+ oidc-provider: ${{ secrets.JFROG_OIDC_PROVIDER }}
+ oidc-audience: ${{ secrets.JFROG_OIDC_AUDIENCE }}
diff --git a/.github/workflows/promote.yaml b/.github/workflows/promote.yaml
index 35a9e91f8..59bc62fc6 100644
--- a/.github/workflows/promote.yaml
+++ b/.github/workflows/promote.yaml
@@ -21,8 +21,11 @@ on:
required: true
jobs:
- validate-build:
- runs-on: ubuntu-latest
+ promote:
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
+ outputs:
+ build-name-numbers: ${{ steps.get-build-name-number.outputs.build-name-numbers }}
+ artifact-version: ${{ steps.get-artifact-version.outputs.artifact-version }}
steps:
- name: Setup jfrog shell
uses: jfrog/setup-jfrog-cli@v4
@@ -91,29 +94,34 @@ jobs:
jf rt build-promote "$BUILD_NAME" ${{ inputs.build-number }} ${{ inputs.target-repository }}
done
+ - name: Get build name with build number
+ id: get-build-name-number
+ run: |
+ echo "build-name-numbers=$(echo '${{ steps.get-build-info.outputs.build-info }}' | jq '[.buildInfo.modules[].id]')" >> $GITHUB_OUTPUT
+
- name: Get artifact version
id: get-artifact-version
- working-directory: client
+ working-directory: client # The version will be the same for all the modules in the project. Taking client since this is the module that is released.
run: |
- echo artifact-version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_OUTPUT
+ echo "artifact-version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT
- - name: Get artifact name
- id: get-artifact-name
- working-directory: client
+ - name: Build name
run: |
- echo artifact-name=$(mvn help:evaluate -Dexpression=project.build.finalName -q -DforceStdout) >> $GITHUB_OUTPUT
-
- #- name: Create GitHub release
- # uses: ./.github/actions/github-release
- # with:
- # artifact-version: ${{ steps.get-artifact-version.outputs.artifact-version }}
- # github-token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Publish to Sonatype (Maven central)
- uses: ./.github/actions/publish-to-sonatype
+ echo "build-name-number: ${{ steps.get-build-name-number.outputs.build-name-number }}"
+ echo "artifact-version: ${{ steps.get-artifact-version.output.artifact-version }}"
+
+ publish-to-sonatype:
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
+ needs: promote
+ strategy:
+ matrix:
+ build-name-number: ${{ needs.promote.outputs.build-name-numbers }}
+ artifact-version: ${{ needs.promote.outputs.artifact-version }}
+ steps:
+ - uses: ./.github/actions/publish-to-sonatype
with:
oidc-provider: ${{ secrets.JFROG_OIDC_PROVIDER }}
oidc-audience: ${{ secrets.JFROG_OIDC_AUDIENCE }}
- artifact-name: ${{ steps.get-artifact-name.outputs.artifact-name }}
- artifact-version: ${{ steps.get-artifact-version.outputs.artifact-version }}
target-repository: ${{ inputs.target-repository }}
+ build-name-number: ${{ matrix.build-name-number }}
+ artifact-version: ${{ matrix.artifact-version }}
diff --git a/.github/workflows/pull-request-open-dev.yaml b/.github/workflows/pull-request-open.yaml
similarity index 91%
rename from .github/workflows/pull-request-open-dev.yaml
rename to .github/workflows/pull-request-open.yaml
index bc8b0ae0b..48690fb02 100644
--- a/.github/workflows/pull-request-open-dev.yaml
+++ b/.github/workflows/pull-request-open.yaml
@@ -16,7 +16,7 @@ on:
jobs:
test-with-server-release:
name: Build stage - Test with latest version of Aerospike Enterprise Server
- uses: ./.github/workflows/build-dev.yaml
+ uses: ./.github/workflows/build-pr.yaml
with:
branch: ${{ github.ref }}
source-branch: ${{ inputs.source-branch || github.base_ref }}
@@ -26,7 +26,7 @@ jobs:
test-with-server-rc:
name: Build stage - Test with latest RC version of Aerospike Enterprise Server
- uses: ./.github/workflows/build-dev.yaml
+ uses: ./.github/workflows/build-pr.yaml
with:
branch: ${{ github.base_ref || inputs.branch }}
source-branch: ${{ inputs.source-branch || github.base_ref }}
diff --git a/.github/workflows/release-stage.yaml b/.github/workflows/release-stage.yaml
index aa3f78069..7420c2707 100644
--- a/.github/workflows/release-stage.yaml
+++ b/.github/workflows/release-stage.yaml
@@ -7,7 +7,7 @@ on:
jobs:
debug-job:
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
steps:
- name: debug
run: |
@@ -16,7 +16,7 @@ jobs:
java-version:
needs: debug-job
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
outputs:
java-version: ${{ steps.get-java-version.outputs.java-version }}
steps:
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 0c3a01319..0accf4831 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -26,7 +26,7 @@ on:
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }}
steps:
- name: Checkout code
uses: actions/checkout@v4
diff --git a/client/pom.xml b/client/pom.xml
index cda8518d2..1317cc4d6 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -119,6 +119,7 @@
${project.basedir}/deploy-resources/bouncycastle_pom.xml
target/${project.build.finalName}.jar
com.aerospike
+ ${revision}
aerospike-client${crypto.type}-jdk21
true
@@ -189,6 +190,7 @@
${project.basedir}/deploy-resources/gnu_pom.xml
target/${project.build.finalName}.jar
com.aerospike
+ ${revision}
aerospike-client${crypto.type}-jdk21
true