This commit is contained in:
parent
1a38cce3b8
commit
e1b202efd2
|
|
@ -0,0 +1,76 @@
|
|||
stages:
|
||||
- build
|
||||
- release
|
||||
|
||||
variables:
|
||||
# Use official NixOS container
|
||||
NIX_IMAGE: "nixos/nix:latest"
|
||||
# Binary path relative to project root
|
||||
BINARY_PATH: "build/compose/binaries/main/app/Theorycrafter/bin/Theorycrafter"
|
||||
|
||||
build:
|
||||
stage: build
|
||||
image: $NIX_IMAGE
|
||||
|
||||
# Only run on new tags for main branch
|
||||
only:
|
||||
- tags
|
||||
|
||||
before_script:
|
||||
- echo "Setting up Nix environment..."
|
||||
- nix --version
|
||||
- nix-channel --update
|
||||
|
||||
script:
|
||||
- echo "Building Java project with Gradle via Nix shell..."
|
||||
# Enter nix-shell and run the build
|
||||
- nix-shell --run "./gradlew package"
|
||||
|
||||
# Verify the binary exists
|
||||
- ls -la $BINARY_PATH
|
||||
- file $BINARY_PATH
|
||||
|
||||
# Create the tarball with the tag name
|
||||
- mkdir -p release
|
||||
- tar -czf "release/Theorycrafter-${CI_COMMIT_TAG}-x86_64-linux.tar.gz" -C "$(dirname $BINARY_PATH)" "$(basename $BINARY_PATH)"
|
||||
|
||||
# Verify the tarball was created
|
||||
- ls -la release/
|
||||
|
||||
artifacts:
|
||||
paths:
|
||||
- release/Theorycrafter-${CI_COMMIT_TAG}-x86_64-linux.tar.gz
|
||||
expire_in: 1 week
|
||||
|
||||
cache:
|
||||
key: gradle-cache-$CI_COMMIT_REF_SLUG
|
||||
paths:
|
||||
- .gradle/caches/
|
||||
- .gradle/wrapper/
|
||||
|
||||
release:
|
||||
stage: release
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
|
||||
# Only run on new tags for main branch
|
||||
only:
|
||||
- tags
|
||||
|
||||
# Depend on build job completion
|
||||
dependencies:
|
||||
- build
|
||||
|
||||
before_script:
|
||||
- apk add --no-cache curl jq
|
||||
|
||||
script:
|
||||
- echo "Creating GitLab release for tag ${CI_COMMIT_TAG}..."
|
||||
|
||||
# Create release using GitLab Release CLI
|
||||
- |
|
||||
release-cli create \
|
||||
--name "Theorycrafter ${CI_COMMIT_TAG}" \
|
||||
--tag-name "${CI_COMMIT_TAG}" \
|
||||
--description "Release ${CI_COMMIT_TAG}" \
|
||||
--assets-link "{\"name\":\"Theorycrafter-${CI_COMMIT_TAG}-x86_64-linux.tar.gz\",\"url\":\"${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/file/release/Theorycrafter-${CI_COMMIT_TAG}-x86_64-linux.tar.gz\"}"
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
openjdk17
|
||||
gradle
|
||||
git
|
||||
mesa
|
||||
libglvnd
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
echo "Java development environment loaded!"
|
||||
echo "- OpenJDK 17: $(java -version 2>&1 | head -n1)"
|
||||
echo "- Gradle: $(gradle --version | grep 'Gradle' | head -n1 2>/dev/null || echo 'Gradle available')"
|
||||
echo "- OpenGL libraries available"
|
||||
|
||||
export LD_LIBRARY_PATH=${pkgs.mesa.out}/lib:${pkgs.libglvnd.out}/lib:$LD_LIBRARY_PATH
|
||||
export JAVA_HOME=${pkgs.openjdk17}
|
||||
|
||||
echo ""
|
||||
echo "Environment variables set:"
|
||||
echo "- JAVA_HOME: $JAVA_HOME"
|
||||
echo "- LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
||||
echo ""
|
||||
echo "Ready to build! Run: ./gradlew package"
|
||||
'';
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
|
||||
pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
openjdk17
|
||||
gradle
|
||||
git
|
||||
mesa
|
||||
libglvnd
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
echo "Java development environment loaded!"
|
||||
echo "- OpenJDK 17: $(java -version 2>&1 | head -n1)"
|
||||
echo "- Gradle: $(gradle --version | grep 'Gradle' | head -n1 2>/dev/null || echo 'Gradle available')"
|
||||
echo "- OpenGL libraries available"
|
||||
|
||||
export LD_LIBRARY_PATH=${pkgs.mesa.out}/lib:${pkgs.libglvnd.out}/lib:$LD_LIBRARY_PATH
|
||||
export JAVA_HOME=${pkgs.openjdk17}
|
||||
|
||||
echo ""
|
||||
echo "Environment variables set:"
|
||||
echo "- JAVA_HOME: $JAVA_HOME"
|
||||
echo "- LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
|
||||
echo ""
|
||||
echo "Ready to build! Run: ./gradlew package"
|
||||
'';
|
||||
}
|
||||
Loading…
Reference in New Issue