ncc/.gitlab-ci.yml

88 lines
2.3 KiB
YAML

image: php:8.2
stages:
- setup
- build
- publish
before_script:
- apt update -yqq
- apt install -yqq git libzip-dev zip make wget gnupg2 libonig-dev libcurl4-openssl-dev
- apt-get clean
# Prepare the environment
setup:
stage: setup
script:
- docker-php-ext-install mbstring ctype posix zip curl fileinfo
# Build the project using the Makefile
build:
stage: build
script:
- wget -O phive.phar https://phar.io/releases/phive.phar
- wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
- chmod +x phive.phar
- mv phive.phar /usr/local/bin/phive
- phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
- make autoload
- make redist
- make tar
artifacts:
paths:
- build/*.tar.gz
# Build the Alpine Docker image
build-docker-alpine:
stage: build-docker
script:
- |
if [[ ! -z "$CI_COMMIT_TAG" ]]; then
DOCKER_TAG="$CI_COMMIT_TAG-alpine"
else
DOCKER_TAG="$CI_COMMIT_REF_SLUG-alpine"
fi
echo "Building Docker image with tag: $DOCKER_TAG"
docker build -f Dockerfile -t $CI_REGISTRY_IMAGE:$DOCKER_TAG .
docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG
# Build the Debian Docker image
build-docker-debian:
stage: build-docker
script:
- |
if [[ ! -z "$CI_COMMIT_TAG" ]]; then
DOCKER_TAG="$CI_COMMIT_TAG-debian"
else
DOCKER_TAG="$CI_COMMIT_REF_SLUG-debian"
fi
echo "Building Docker image with tag: $DOCKER_TAG"
docker build -f Dockerfile.debian -t $CI_REGISTRY_IMAGE:$DOCKER_TAG .
docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG
# Publish the package
publish:
stage: publish
script:
- |
if [[ ! -z "$CI_COMMIT_TAG" ]]; then
PACKAGE_NAME=$CI_COMMIT_TAG
FILE_NAME="ncc-$CI_COMMIT_TAG.tar.gz"
else
PACKAGE_NAME=$CI_COMMIT_REF_NAME
FILE_NAME="ncc-$CI_COMMIT_REF_NAME.tar.gz"
fi
mv build/*.tar.gz build/$FILE_NAME
echo "Package Name: $PACKAGE_NAME"
echo "File Name: $FILE_NAME"
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \
--upload-file build/$FILE_NAME \
"https://$CI_SERVER_HOST/api/v4/projects/$CI_PROJECT_ID/packages/generic/$PACKAGE_NAME/$CI_PIPELINE_ID/$FILE_NAME"
only:
- branches
- tags