Add a bounded virtual executor service #769
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Service CI | |
on: | |
pull_request: | |
push: | |
branches-ignore: | |
- gh-pages | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: ubuntu:24.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 | |
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0 | |
with: | |
distribution: 'temurin' | |
java-version-file: .java-version | |
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 |