Files
netneutrality/.gitlab-ci.yml
T

101 lines
2.6 KiB
YAML

image: docker.io/library/eclipse-temurin:25-jdk-alpine@sha256:da683f4f02f9427597d8fa162b73b8222fe08596dcebaf23e4399576ff8b037e
variables:
MAVEN_OPTS: >-
-Dhttps.protocols=TLSv1.2
-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository
-Dorg.slf4j.simpleLogger.showDateTime=true
-Djava.awt.headless=true
MAVEN_CLI_OPTS: >-
--batch-mode
--errors
--fail-at-end
--show-version
--no-transfer-progress
-DinstallAtEnd=true
-DdeployAtEnd=true
cache:
key: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}
paths:
- .m2/repository
- .mvn
policy: pull-push
stages:
- compile
- test
- package
- docker-build
compile:
stage: compile
script:
- "chmod +x ./mvnw"
- "./mvnw $MAVEN_CLI_OPTS compile"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH == "main"'
- if: '$CI_COMMIT_TAG'
test:
stage: test
script:
- "chmod +x ./mvnw"
- "./mvnw $MAVEN_CLI_OPTS test"
artifacts:
when: always
reports:
junit:
- "**/target/*-reports/TEST-*.xml"
codequality:
- "target/gl-code-quality-report.json"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH == "main"'
- if: '$CI_COMMIT_TAG'
package:
stage: package
script:
- "chmod +x ./mvnw"
- "./mvnw $MAVEN_CLI_OPTS package -DskipTests=true"
artifacts:
name: "Maven artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
paths:
- target/netneutrality.jar
- startup.sh
expire_in: 1 week
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
- if: '$CI_COMMIT_TAG'
docker-build-main:
stage: docker-build
image: quay.io/buildah/stable
needs:
- job: package
artifacts: true
script:
- echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
- buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:main .
- buildah push $CI_REGISTRY_IMAGE:main
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
docker-build-release:
stage: docker-build
image: quay.io/buildah/stable
needs:
- job: package
artifacts: true
script:
- export RELEASE_VERSION="${CI_COMMIT_TAG#v}"
- echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
- buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:$RELEASE_VERSION .
- buildah push $CI_REGISTRY_IMAGE:$RELEASE_VERSION
- buildah tag $CI_REGISTRY_IMAGE:$RELEASE_VERSION $CI_REGISTRY_IMAGE:latest
- buildah push $CI_REGISTRY_IMAGE:latest
rules:
- if: '$CI_COMMIT_TAG'