diff --git a/.github/actions/build-and-test/action.yaml b/.github/actions/build-and-test/action.yaml index ca46c4302..95a47f9ff 100644 --- a/.github/actions/build-and-test/action.yaml +++ b/.github/actions/build-and-test/action.yaml @@ -14,15 +14,19 @@ 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: "" + jfrog-platform-url: + description: "" + required: false + default: https://aerospike.jfrog.io run-tests: required: true - default: "false" + default: "true" description: Spin up aerospike enterprise server and run tests runs: @@ -39,17 +43,26 @@ runs: shell: bash run: mvn clean install - - name: Run EE server + - name: Set up JFrog credentials + id: setup-jfrog-cli + uses: jfrog/setup-jfrog-cli@v4 + env: + JF_URL: ${{ inputs.jfrog-platform-url }} + with: + oidc-provider-name: ${{ inputs.oidc-provider }} + oidc-audience: ${{ inputs.oidc-audience }} + + - 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 }} + jfrog-docker-username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }} + jfrog-docker-password: ${{ steps.setup-jfrog-cli.outputs.oidc-token }} - 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/run-ee-server/action.yaml b/.github/actions/run-ee-server/action.yaml index 22510249c..05633c599 100644 --- a/.github/actions/run-ee-server/action.yaml +++ b/.github/actions/run-ee-server/action.yaml @@ -15,38 +15,64 @@ inputs: required: false description: Container repo url default: aerospike.jfrog.io/docker/ - oidc-provider: + jfrog-platform-url: description: "" required: false - default: gh-aerospike-clients - oidc-audience: + default: https://aerospike.jfrog.io + jfrog-docker-username: description: "" + required: true + jfrog-docker-password: + description: "" + required: true + #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 - uses: jfrog/setup-jfrog-cli@v4 - env: - JF_URL: ${{ inputs.jfrog-platform-url }} - with: - oidc-provider-name: ${{ inputs.oidc-provider }} - oidc-audience: ${{ inputs.oidc-audience }} + #- name: Set up JFrog credentials + # id: setup-jfrog-cli + # uses: jfrog/setup-jfrog-cli@v4 + # env: + # JF_URL: ${{ inputs.jfrog-platform-url }} + # with: + # 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 }} + run: docker login ${{ inputs.container-repo-url }} --username ${{ inputs.jfrog-docker-username }} --password ${{ inputs.jfrog-docker-password }} 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/build-dev.yaml b/.github/workflows/build-dev.yaml index 1ca17a63e..b60775984 100644 --- a/.github/workflows/build-dev.yaml +++ b/.github/workflows/build-dev.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..d17c2d793 100644 --- a/.github/workflows/promote.yaml +++ b/.github/workflows/promote.yaml @@ -22,7 +22,7 @@ on: jobs: validate-build: - runs-on: ubuntu-latest + runs-on: ${{ vars.BUILD_CONTAINER_DISTRO_VERSION }} steps: - name: Setup jfrog shell uses: jfrog/setup-jfrog-cli@v4 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