X-Test #61
This file contains 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
# act --action-offline-mode --container-architecture linux/amd64 --secret-file secrets.env --workflows .github/workflows/xtest.yml --job cross-client-test | |
name: X-Test | |
on: | |
pull_request: | |
workflow_call: | |
inputs: | |
platform-ref: | |
required: false | |
type: string | |
default: main | |
otdfctl-ref: | |
required: false | |
type: string | |
default: main | |
js-ref: | |
required: false | |
type: string | |
default: main | |
java-ref: | |
required: false | |
type: string | |
default: main | |
schedule: | |
- cron: "30 6 * * *" | |
jobs: | |
cross-client-test: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: read | |
env: | |
PLATFORM_REF: "${{ inputs.platform-ref || 'main' }}" | |
JS_REF: "${{ inputs.js-ref || 'main' }}" | |
OTDFCTL_REF: "${{ inputs.otdfctl-ref || 'main' }}" | |
JAVA_REF: "${{ inputs.java-ref || 'main' }}" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: opentdf/tests | |
path: otdftests # use different name bc other repos might have tests directories | |
- name: Set up Node 20 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "20.x" | |
registry-url: https://npm.pkg.github.com | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- uses: bufbuild/buf-setup-action@382440cdb8ec7bc25a68d7b4711163d95f7cc3aa | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up JDK | |
uses: actions/setup-java@5896cecc08fd8a1fbdfaf517e29b571164b031f7 | |
with: | |
java-version: "11" | |
distribution: "adopt" | |
server-id: github | |
######## CHECKOUT THE PLATFORM ############# | |
- name: Check out platform | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
with: | |
repository: opentdf/platform | |
path: platform | |
ref: ${{ env.PLATFORM_REF }} | |
- name: Set up go | |
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 | |
with: | |
go-version: "1.22.3" | |
check-latest: false | |
cache-dependency-path: | | |
platform/service/go.sum | |
platform/examples/go.sum | |
platform/protocol/go/go.sum | |
platform/sdk/go.sum | |
######## SPIN UP BACKEND ############# | |
- run: | | |
.github/scripts/init-temp-keys.sh | |
cp opentdf-dev.yaml opentdf.yaml | |
working-directory: platform | |
- name: Added Trusted Certs | |
run: | | |
sudo chmod -R 777 ./keys | |
sudo apt-get install -y ca-certificates | |
sudo cp ./keys/localhost.crt /usr/local/share/ca-certificates | |
sudo update-ca-certificates | |
working-directory: platform | |
- run: | | |
env | |
docker compose up -d --wait --wait-timeout 240 | |
working-directory: platform | |
env: | |
DOCKER_HOST: "${{ env.DOCKER_HOST || 'unix:///var/run/docker.sock' }}" | |
- run: go run ./service provision keycloak | |
working-directory: platform | |
- run: go run ./service provision fixtures | |
working-directory: platform | |
- uses: JarvusInnovations/background-action@2428e7b970a846423095c79d43f759abf979a635 | |
name: start server in background | |
with: | |
run: > | |
go build -o opentdf -v service/main.go | |
&& .github/scripts/watch.sh opentdf.yaml ./opentdf start | |
wait-on: | | |
tcp:localhost:8080 | |
log-output-if: true | |
wait-for: 90s | |
working-directory: platform | |
######## CHECKOUT CLIENT-WEB ############# | |
- name: Check out client-web | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
with: | |
repository: opentdf/client-web | |
path: client-web | |
ref: ${{ env.JS_REF }} | |
######## SETUP THE JS CLI ############# | |
- name: build the js cli | |
run: | | |
make clean | |
cd lib | |
CLIENT_VERSION=$(npm pkg get version | tr -d \") | |
cd .. | |
make lib/opentdf-client-$CLIENT_VERSION.tgz | |
rm -rf */node_modules | |
cd cli | |
npm uninstall @opentdf/client && npm ci && npm i ../lib/opentdf-client-*.tgz | |
npm pack | |
working-directory: client-web | |
- name: update packages | |
run: |- | |
npm ci | |
npm install ../../client-web/cli/opentdf-cli-*.tgz | |
npm list | |
working-directory: otdftests/xtest | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
######## CHECKOUT GO CLI ############# | |
- name: Check out otdfctl | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
with: | |
repository: opentdf/otdfctl | |
path: otdfctl | |
ref: ${{ env.OTDFCTL_REF }} | |
######## SETUP THE GO CLI ############# | |
- name: Prepare go cli | |
run: |- | |
go get github.com/opentdf/platform/sdk@$PLATFORM_REF | |
go build . | |
cp ./otdfctl ../otdftests/xtest/sdk/go/otdfctl | |
working-directory: otdfctl | |
####### CHECKOUT JAVA SDK ############## | |
- name: Check out java-sdk | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
with: | |
repository: opentdf/java-sdk | |
path: java-sdk | |
ref: ${{ env.JAVA_REF }} | |
####### SETUP JAVA CLI ############## | |
- name: Build java cli | |
run: | | |
mvn --batch-mode clean install -DskipTests | |
env: | |
BUF_INPUT_HTTPS_USERNAME: opentdf-bot | |
BUF_INPUT_HTTPS_PASSWORD: ${{ secrets.GITHUB_TOKEN }} | |
working-directory: java-sdk | |
- name: Move java cli to xtest | |
run: |- | |
cp cmdline/target/cmdline.jar ../otdftests/xtest/sdk/java/cmdline.jar | |
working-directory: java-sdk | |
######## RUN THE TESTS ############# | |
- name: Install test dependencies | |
run: |- | |
pip3 install -r requirements.txt | |
working-directory: otdftests/xtest | |
- name: Run xtests | |
run: |- | |
npm run test | |
working-directory: otdftests/xtest |