ncc/.gitlab-ci.yml

97 lines
2.5 KiB
YAML
Raw Normal View History

2023-08-15 20:13:30 -04:00
stages:
- prepare
- build
- package
- release
- docker-build
2023-01-29 23:27:56 +00:00
2023-08-15 20:13:30 -04:00
variables:
PACKAGE_PATH: "build/build.tar.gz"
2023-01-29 23:27:56 +00:00
2023-08-16 00:45:03 +00:00
.before_script_template: &before_script_definition
before_script:
2023-08-15 20:13:30 -04:00
- apt update -yqq
- apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
- wget -O phive.phar https://phar.io/releases/phive.phar
- wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
- gpg --verify phive.phar.asc phive.phar
- chmod +x phive.phar
- mv phive.phar /usr/local/bin/phive
- phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
2023-08-16 00:45:03 +00:00
prepare:
image: php:8.1
stage: prepare
<<: *before_script_definition
script:
- echo "Preparation completed"
2023-08-15 20:13:30 -04:00
rules:
- if: $CI_COMMIT_BRANCH
build:
2023-08-16 00:45:03 +00:00
image: php:8.1
2023-08-15 20:13:30 -04:00
stage: build
2023-08-16 00:45:03 +00:00
<<: *before_script_definition
2023-08-15 20:13:30 -04:00
script:
- make tar
2023-03-01 19:08:18 +00:00
2023-08-15 20:13:30 -04:00
package:
2023-08-16 00:45:03 +00:00
image: php:8.1
2023-08-15 20:13:30 -04:00
stage: package
2023-08-16 00:45:03 +00:00
<<: *before_script_definition
2023-08-15 20:13:30 -04:00
script:
2023-08-16 00:45:03 +00:00
- make tar
2023-08-15 20:13:30 -04:00
- mkdir -p package/$CI_COMMIT_REF_NAME
- cp $PACKAGE_PATH package/$CI_COMMIT_REF_NAME/
2023-08-16 00:45:03 +00:00
- curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/build.tar.gz "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/package-name/$CI_COMMIT_TAG/build.tar.gz"
2023-08-15 20:13:30 -04:00
artifacts:
paths:
- package/$CI_COMMIT_REF_NAME/build.tar.gz
rules:
- if: $CI_COMMIT_TAG
2023-03-01 19:08:18 +00:00
2023-08-15 20:13:30 -04:00
release:
2023-08-16 00:45:03 +00:00
image: php:8.1
2023-08-15 20:13:30 -04:00
stage: release
2023-08-16 00:45:03 +00:00
<<: *before_script_definition
2023-03-01 19:08:18 +00:00
script:
2023-08-16 00:45:03 +00:00
- make tar
2023-03-01 19:08:18 +00:00
- mkdir ncc_$CI_COMMIT_TAG
- cp -r build/src/* ncc_$CI_COMMIT_TAG/
artifacts:
paths:
- ncc_$CI_COMMIT_TAG/
rules:
- if: $CI_COMMIT_TAG
ncc-docker:
image: docker:latest
2023-08-15 20:13:30 -04:00
stage: docker-build
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
2023-08-16 00:45:03 +00:00
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"
rules:
2023-08-16 00:45:03 +00:00
- if: $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_BRANCH == 'dev' || $CI_COMMIT_TAG
exists:
- Dockerfile
2023-07-23 17:44:04 +00:00
ncc-docker-debian:
image: docker:latest
2023-08-15 20:13:30 -04:00
stage: docker-build
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
2023-08-16 00:45:03 +00:00
- docker build -f Dockerfile.debian --pull -t "$CI_REGISTRY_IMAGE:debian-$CI_COMMIT_TAG" .
- docker push "$CI_REGISTRY_IMAGE:debian-$CI_COMMIT_TAG"
rules:
2023-08-16 00:45:03 +00:00
- if: $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
exists:
2023-08-16 00:45:03 +00:00
- Dockerfile.debian