stages: - setup - install - build - publish # Prepare the environment setup: stage: setup image: php:8.2 script: - apt update -yqq - apt install git libzip-dev zip make wget gnupg libonig-dev -yqq - docker-php-ext-install mbstring ctype tokenizer posix zip # 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: stage: build script: - make autoload - make redist - make tar artifacts: paths: - build/*.tar.gz # Publish the package publish: stage: publish script: - | 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 PACKAGE_NAME=feature/$CI_COMMIT_REF_NAME fi 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