diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d8868dd..7e58d0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,72 +1,57 @@ +stages: + - setup + - install + - build + - publish + +# Prepare the environment +setup: + stage: setup + image: php:8.2 + script: + - apt-get update -y + - apt-get install -y libmbstring-dev libzip-dev wget gnupg curl + - docker-php-ext-install mbstring ctype tokenizer posix + +# Install Phive and Phpab +install: + stage: install + script: + - 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 + +# Build the project using the Makefile build: - image: php:8.1 - - before_script: - # Install some stuff that the image doesn't come with - - apt update -yqq - - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq - - # Install phive - - 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 - - # install phpab - - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C - script: - - make tar - rules: - - if: $CI_COMMIT_BRANCH - -release: - image: php:8.1 - - before_script: - # Install some stuff that the image doesn't come with - - apt update -yqq - - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq - - # Install phive - - 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 - - # install phpab - - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C + stage: build script: + - make autoload - make redist - - mkdir ncc_$CI_COMMIT_TAG - - cp -r build/src/* ncc_$CI_COMMIT_TAG/ + - make tar artifacts: paths: - - ncc_$CI_COMMIT_TAG/ - rules: - - if: $CI_COMMIT_TAG + - build/*.tar.gz -ncc-docker-build: - image: docker:latest - services: - - docker:dind - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# Publish the package +publish: + stage: publish script: - | - if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then - tag="" - echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'" + if [[ "$CI_COMMIT_REF_NAME" == "master" || "$CI_COMMIT_REF_NAME" == "dev" ]]; then + PACKAGE_NAME=$CI_COMMIT_REF_NAME + elif [[ ! -z "$CI_COMMIT_TAG" ]]; then + PACKAGE_NAME=$CI_COMMIT_TAG else - tag=":$CI_COMMIT_REF_SLUG" - echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag" + PACKAGE_NAME=feature/$CI_COMMIT_REF_NAME fi - - docker build --no-cache --pull -t "$CI_REGISTRY_IMAGE${tag}" . - - docker push "$CI_REGISTRY_IMAGE${tag}" - rules: - - if: $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_BRANCH == 'dev' - exists: - - Dockerfile + + curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \ + --upload-file build/*.tar.gz \ + "https://$CI_SERVER_HOST/api/v4/projects/$CI_PROJECT_ID/packages/generic/$PACKAGE_NAME/$CI_PIPELINE_ID/file.tar.gz" + only: + - branches + - tags \ No newline at end of file diff --git a/.gitlab-ci.yml.old b/.gitlab-ci.yml.old new file mode 100644 index 0000000..d8868dd --- /dev/null +++ b/.gitlab-ci.yml.old @@ -0,0 +1,72 @@ +build: + image: php:8.1 + + before_script: + # Install some stuff that the image doesn't come with + - apt update -yqq + - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq + + # Install phive + - 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 + + # install phpab + - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C + script: + - make tar + rules: + - if: $CI_COMMIT_BRANCH + +release: + image: php:8.1 + + before_script: + # Install some stuff that the image doesn't come with + - apt update -yqq + - apt install git libpq-dev libzip-dev zip make wget gnupg -yqq + + # Install phive + - 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 + + # install phpab + - phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C + script: + - make redist + - 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-build: + image: docker:latest + services: + - docker:dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - | + if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then + tag="" + echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'" + else + tag=":$CI_COMMIT_REF_SLUG" + echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag" + fi + - docker build --no-cache --pull -t "$CI_REGISTRY_IMAGE${tag}" . + - docker push "$CI_REGISTRY_IMAGE${tag}" + rules: + - if: $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_BRANCH == 'dev' + exists: + - Dockerfile