Skip to content

[CLIENT-3033] Add CI/CD workflow that tests proxy client against a proxy server build from JFrog #23

[CLIENT-3033] Add CI/CD workflow that tests proxy client against a proxy server build from JFrog

[CLIENT-3033] Add CI/CD workflow that tests proxy client against a proxy server build from JFrog #23

Workflow file for this run

name: Build and upload proxy client to JFrog
on:
pull_request:
push:
branches:
- stage
# TODO: snapshots_private has been removed from base parent pom.xml. Need to add workflow code to write snapshots_private to local pipeline pom.xml (this workflow will not work until that is done)
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout Java client
uses: actions/checkout@v4
- name: Set up settings.xml for Maven
uses: s4u/maven-settings-action@v2.8.0
with:
servers: '[{"id": "snapshots_private", "username": "${{ secrets.JFROG_USERNAME }}", "password": "${{ secrets.JFROG_MAVEN_TOKEN }}"}]'
- name: Build Java client
run: mvn install
- run: docker login aerospike.jfrog.io --username ${{ secrets.JFROG_USERNAME }} --password ${{ secrets.JFROG_DOCKER_TOKEN }}
# TODO: change to use "latest" tag
- name: Get all tags for proxy server Docker image
run: docker pull --all-tags aerospike.jfrog.io/docker/aerospike/aerospike-proxy-private
- name: Get the latest tag for proxy server
run: echo LATEST_TAG=$(docker images aerospike.jfrog.io/docker/aerospike/aerospike-proxy-private --format json | jq -r '.Tag' | head -n 1) >> $GITHUB_ENV
# Enables pipefail
shell: bash
- name: Get CPU architecture for Docker image
run: echo IMAGE_ARCH=$(docker image inspect --format json aerospike.jfrog.io/docker/aerospike/aerospike-proxy-private:${{ env.LATEST_TAG }} | jq -r ".[0].Architecture") >> $GITHUB_ENV
shell: bash
- name: If needed, use QEMU to emulate ARM
if: ${{ env.IMAGE_ARCH == 'arm64' }}
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Run Aerospike Proxy on latest tag
run: docker run -d --name aerospike-proxy -p 4000:4000 aerospike.jfrog.io/docker/aerospike/aerospike-proxy-private:${{ env.LATEST_TAG }}
- name: Run Aerospike server
run: docker run -d --name aerospike -p 3000:3000 aerospike/aerospike-server
- name: Wait for native and proxy server to start
run: sleep 3
- name: Run tests
run: mvn test -Dtest=com.aerospike.proxy.tests.ProxyTests -DfailIfNoTests=false
# TODO: For debugging. Remove later
- if: ${{ always() }}
run: docker container ps -a
- if: ${{ always() }}
run: docker logs aerospike
- if: ${{ always() }}
run: docker logs aerospike-proxy
# - name: Upload to JFrog
# run: mvn deploy