Skip to content

Feature: code for "navigate to arbitrary dom node" - UI partially mis… #2204

Feature: code for "navigate to arbitrary dom node" - UI partially mis…

Feature: code for "navigate to arbitrary dom node" - UI partially mis… #2204

Workflow file for this run

name: Structr CI Pipeline
on:
push
jobs:
run-tests:
if: ${{ !startsWith( github.actor, 'dependabot' ) }}
runs-on: self-hosted
environment: build-and-test
strategy:
matrix:
include:
- module: structr-base
variableName: Base
- module: structr-db-driver-api
variableName: DB_DRIVER_API
# - module: structr-memgraph-driver
# variableName: MEMGRAPH_DRIVER
# - module: structr-memory-driver
# variableName: MEMORY_DRIVER
- module: structr-modules
variableName: MODULES
- module: structr-neo4j-bolt-driver
variableName: NEO4J_BOLT_DRIVER
steps:
- uses: actions/checkout@v3
- name: Start Test Database
run: >-
docker run -d --name ${{ matrix.module }}-test-${{ github.run_id }}
-p 7687
-e NEO4J_AUTH=neo4j/admin123
-e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
-e NEO4J_server_memory_heap_max__size=4G
-e NEO4J_server_memory_pagecache_size=4G neo4j:2025 &&
echo "ASSIGNED_PORT_${{ matrix.variableName }}_${{ github.run_id }}=$(docker inspect --format='{{(index (index .NetworkSettings.Ports "7687/tcp") 0).HostPort}}' ${{ matrix.module }}-test-${{ github.run_id }})" >> $GITHUB_ENV
- name: Install GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '25'
distribution: 'graalvm-community'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Compile and run Tests
run: >-
mvn clean install -q -DskipTests -DskipUITests -DskipDist -DskipDocker -DskipDeb -DskipDockerTestDB &&
cd ${{ matrix.module }} &&
mvn install -q -DskipDockerTestDB -Denv.testDatabaseConnection="bolt://localhost:${ASSIGNED_PORT_${{ matrix.variableName }}_${{ github.run_id }}}"
- name: Stop Test Database
if: always()
run: docker stop ${{ matrix.module }}-test-${{ github.run_id }}
run-ui-tests:
if: ${{ false && !startsWith( github.actor, 'dependabot' ) }}
runs-on: self-hosted
environment: build-and-test
steps:
- uses: actions/checkout@v3
- name: Install GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '25'
distribution: 'graalvm-community'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Compile and run Tests
run: >-
mvn clean install -q -DskipTests -DskipUITests -DskipDist -DskipDocker -DskipDeb -DskipDockerTestDB &&
cd structr-app &&
mvn install -q -DskipDockerTestDB -DskipDeb -DskipDocker -DskipDockerTestDB
build-and-deploy:
runs-on: self-hosted
environment: build-and-test
if: ${{ success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release') }}
needs: run-tests
steps:
- uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: structr
password: ${{ secrets.STRUCTR_DOCKER_PASSWORD }}
- name: Install GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '25'
distribution: 'graalvm-community'
github-token: ${{ secrets.GITHUB_TOKEN }}
- run: mvn -U clean install -Pwith-sources -DskipDockerTestDB -DskipTests -DskipUITests
- name: Upload binaries
run: >-
cd structr-app &&
scp -v target/structr-*.deb download.structr.com:/files/repositories/upload > /dev/null 2>&1 &&
scp -v target/structr-*-dist.zip download.structr.com:/files/repositories/upload >/dev/null 2>&1
cleanup-system:
runs-on: self-hosted
if: always()
needs: [run-tests, build-and-deploy]
steps:
- name: Cleanup docker
run: docker rm -f $(docker ps -aq --filter "network=ui-test-network") 2>/dev/null || true && docker container prune -f && docker image prune -f && docker volume prune -f
- name: Cleanup runner home
run: cd ~/actions-runner/_work/ && rm -rf structr