Skip to content

X-Test

X-Test #47

Workflow file for this run

# 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