--- stages: - package - test - repo - pages .vars: &vars NAME: gitea URL: "https://gitea.io" DESCRIPTION: "A painless self-hosted Git service." ARTIFACTS: "usr" .package: &package stage: package image: golang:latest script: - export VERSION=$(echo ${CI_COMMIT_TAG#*v} | cut -d'+' -f1) - export PATCHLEVEL=$(echo ${CI_COMMIT_TAG} | cut -d'+' -f2) - apt-get -qq update - apt-get -qqy install ruby-dev ruby-ffi curl file - gem install fpm - mkdir -p "${CI_PROJECT_DIR}/package_root/usr/bin" - echo "https://dl.gitea.com/gitea/v${VERSION}/gitea-${VERSION}-linux-${ARCH}" - curl -sL -o "${CI_PROJECT_DIR}/package_root/usr/bin/gitea" "https://dl.gitea.com/gitea/v${VERSION}/gitea-${VERSION}-linux-${ARCH}" - file --mime-type --brief "${CI_PROJECT_DIR}/package_root/usr/bin/gitea" | grep -q 'application/x-executable' - chmod +x "${CI_PROJECT_DIR}/package_root/usr/bin/gitea" - gem install fpm - fpm --architecture "${ARCH}" --input-type dir --output-type deb --package "${CI_PROJECT_DIR}/gitea_${VERSION}+${PATCHLEVEL}_${ARCH}.deb" --name "${NAME}" --version "${VERSION}+${PATCHLEVEL}" --description "${DESCRIPTION}" --maintainer "Stefan Heitmüller " --url "${URL}" --depends git --deb-recommends morph027-keyring --deb-systemd "${CI_PROJECT_DIR}/.packaging/${NAME}.service" --deb-activate-noawait /etc/init.d --prefix=/ --before-install "${CI_PROJECT_DIR}/.packaging/before-install.sh" --chdir "${CI_PROJECT_DIR}/package_root" $ARTIFACTS artifacts: paths: - $CI_PROJECT_DIR/*.deb only: - tags .manual: &manual when: manual only: - tags .trigger: &trigger when: delayed start_in: 1 hours only: - triggers gitea-amd64-tag: <<: *package <<: *manual variables: <<: *vars ARCH: amd64 gitea-amd64-trigger: <<: *package <<: *trigger variables: <<: *vars ARCH: amd64 gitea-arm64-tag: <<: *package <<: *manual variables: <<: *vars ARCH: arm64 gitea-arm64-trigger: <<: *package <<: *trigger variables: <<: *vars ARCH: arm64 test-install: stage: test image: docker:latest services: - docker:dind needs: - gitea-amd64 script: - docker run -d --name systemd-ubuntu --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v $CI_PROJECT_DIR:/src -e CI_PROJECT_DIR=/src -e CI_COMMIT_TAG=$CI_COMMIT_TAG jrei/systemd-ubuntu:20.04 - docker exec -t systemd-ubuntu /bin/bash /src/.gitlab-ci/test-install.sh only: - tags test-update: stage: test image: docker:latest services: - docker:dind needs: - gitea-amd64 script: - docker run -d --name systemd-ubuntu --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v $CI_PROJECT_DIR:/src -e CI_PROJECT_DIR=/src -e CI_COMMIT_TAG=$CI_COMMIT_TAG jrei/systemd-ubuntu:20.04 - docker exec -t systemd-ubuntu /bin/bash /src/.gitlab-ci/test-update.sh only: - tags reprepro: cache: untracked: true paths: - $CI_PROJECT_DIR/.repo key: reprepro stage: repo image: registry.gitlab.com/packaging/reprepro-multiple-versions:latest script: - apt-get -qq update - apt-get -qqy install curl - curl -L https://gitlab.com/packaging/utils/-/raw/main/repo.sh | bash -s -- gitea only: - tags pages: cache: untracked: true paths: - $CI_PROJECT_DIR/.repo key: reprepro policy: pull stage: pages image: ubuntu:focal script: - mkdir $CI_PROJECT_DIR/public - cp -r $CI_PROJECT_DIR/.repo/gpg.key $CI_PROJECT_DIR/.repo/gitea/{dists,pool} $CI_PROJECT_DIR/public/ artifacts: paths: - $CI_PROJECT_DIR/public expire_in: 1 day only: - tags