Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions neo4j-2025.05.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
package:
name: neo4j-2025.05
version: "2025.05.1"
epoch: 0
description:
copyright:
- license: GPL-3.0-or-later
dependencies:
runtime:
- bash
# note that this is a required package for neo4j
# If build is failing because neo4j-browser-x.y is unavailable then please unblock that first.
- neo4j-browser-${{vars.major-minor-version}}
- openjdk-21-default-jvm
provides:
- neo4j=${{package.full-version}}

var-transforms:
- from: ${{package.name}}
match: neo4j-(\d+\.\d+)
replace: $1
to: major-minor-version

environment:
contents:
packages:
- bash
- busybox
- ca-certificates-bundle
- curl
- maven
- openjdk-21-default-jdk
- wolfi-base
- wolfi-baselayout

pipeline:
- uses: git-checkout
with:
repository: https://github.com/neo4j/neo4j
tag: ${{package.version}}
expected-commit: c4c5bf10117a3cb210834e2ad17fb0d58819868e

- runs: |
export LANG=en_US.UTF-8
export MAVEN_OPTS="-Xmx2048m"

mvn package -DskipTests=true -T$(nproc)C -q -Doverwrite=true

mkdir -p ${{targets.contextdir}}/var/lib/neo4j
# https://github.com/neo4j/docker-neo4j-publish/blob/b8c0ca2e8dd585e338d74b191a2e370c0da14d92/5.26.0/bullseye/community/Dockerfile#L20
tar --strip-components=1 -xf packaging/standalone/target/neo4j-*.tar.gz -C ${{targets.contextdir}}/var/lib/neo4j

rm -rf ${{targets.contextdir}}/var/lib/neo4j/data
rm -rf ${{targets.contextdir}}/var/lib/neo4j/logs

mkdir -p ${{targets.contextdir}}/data/databases
mkdir -p ${{targets.contextdir}}/data/transactions
ln -s /data ${{targets.contextdir}}/var/lib/neo4j/

mkdir -p ${{targets.contextdir}}/logs
ln -s /logs ${{targets.contextdir}}/var/lib/neo4j/
mkdir -p ${{targets.contextdir}}/opt/java
ln -s /usr/lib/jvm/default-jvm ${{targets.contextdir}}/opt/java/openjdk

mkdir -p ${{targets.contextdir}}/usr/bin
for i in neo4j neo4j-admin cypher-shell; do
ln -sf /var/lib/neo4j/bin/$i ${{targets.contextdir}}/usr/bin/$i
done

# docker-neo4j-publish repository has a Dockerfile for each version of Neo4j
# so we need to make sure we are using the correct version here and its available in the repository.
# I'm using `${{package.version}}` as the directory name but that doesn't mean that the directory exists because
# the repository might not have the version yet, so, we need to make sure that the directory exists before we bump the version of the package.
subpackages:
- name: ${{package.name}}-docker-publish
description: Docker image for Neo4j
pipeline:
- uses: git-checkout
with:
repository: https://github.com/neo4j/docker-neo4j-publish
branch: master
expected-commit: 63f027854864eb65446d7b4996ebf4eabf597174
- working-directory: ${{package.version}}/bullseye/community
runs: |
mkdir -p ${{targets.contextdir}}/startup
cp -r local-package/* ${{targets.contextdir}}/startup/
ls -latr ${{targets.contextdir}}/startup
mkdir -p ${{targets.contextdir}}/var/lib/neo4j/bin
mkdir -p ${{targets.contextdir}}/usr/bin
mv ${{targets.contextdir}}/startup/neo4j-admin-report.sh ${{targets.contextdir}}/var/lib/neo4j/bin/neo4j-admin-report
ln -sf /var/lib/neo4j/bin/neo4j-admin-report ${{targets.contextdir}}/usr/bin/neo4j-admin-report
dependencies:
runtime:
- su-exec
- tini
provides:
- neo4j-docker-publish=${{package.full-version}}

update:
enabled: true
github:
identifier: neo4j/neo4j
use-tag: true
tag-filter: 2025.05.

test:
environment:
contents:
packages:
- openjdk-21-default-jvm
- curl
- wait-for-it
environment:
JAVA_HOME: /usr/lib/jvm/default-jvm
pipeline:
- uses: test/daemon-check-output
with:
start: /usr/bin/neo4j console
timeout: 30
expected_output: |
Starting Neo4j
Starting
Bolt enabled on localhost
post: |
#!/bin/sh -e
wait-for-it localhost:7474 --timeout=60
neo4j status | grep -i "Neo4j is running"
neo4j-admin server status | grep -i "Neo4j is running"
curl -fsSL localhost:7474/browser | grep "<title>Neo4j Browser</title>"
Loading
Loading