name: Service CI on: pull_request: push: branches-ignore: - gh-pages jobs: build: runs-on: ubuntu-latest container: ubuntu:22.04 timeout-minutes: 20 services: foundationdb: # Note: this should generally match the version of the FoundationDB SERVER deployed in production; it's okay if # it's a little behind the CLIENT version. image: foundationdb/foundationdb:7.3.62 options: --name foundationdb steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up JDK 21 uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0 with: distribution: 'temurin' java-version: 21 cache: 'maven' env: # work around an issue with actions/runner setting an incorrect HOME in containers, which breaks maven caching # https://github.com/actions/setup-java/issues/356 HOME: /root - name: Install APT packages # ca-certificates: required for AWS CRT client run: | # Add Docker's official GPG key: apt update apt install -y ca-certificates curl install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc # Add Docker repository to apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null # ca-certificates: required for AWS CRT client apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ca-certificates - name: Configure FoundationDB database run: docker exec foundationdb /usr/bin/fdbcli --exec 'configure new single memory' - name: Download and install FoundationDB client run: | ./mvnw -e -B -Pexclude-spam-filter clean prepare-package -DskipTests=true cp service/target/jib-extra/usr/lib/libfdb_c.x86_64.so /usr/lib/libfdb_c.x86_64.so ldconfig - name: Build with Maven run: ./mvnw -e -B clean verify -DfoundationDb.serviceContainerName=foundationdb