Skip to content

Fixes workflow file to pass container parameter and also adds default… #2279

Fixes workflow file to pass container parameter and also adds default…

Fixes workflow file to pass container parameter and also adds default… #2279

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: 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 &&
cd ${{ matrix.module }} &&
mvn install -q -DskipDist -DskipDocker -DskipDeb -Dstructr.test.module=${{ matrix.variableName }}
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 &&
cd structr-app &&
mvn install -q -DskipDist -DskipDocker -DskipDeb
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 -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 ps --format '{{.ID}} {{.Labels}}' | grep "structr-test-neo4j" | awk '{print $1}' | xargs -r docker rm -f || true
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