mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-26 03:43:08 +01:00
CI: publish a new release in Gitlab on new tag
This commit is contained in:
parent
f6fa5a2d96
commit
982d29aa63
3 changed files with 59 additions and 0 deletions
|
@ -2,11 +2,13 @@ stages:
|
|||
- tests
|
||||
- build
|
||||
- publish
|
||||
- release
|
||||
|
||||
variables:
|
||||
DOC_BRANCH: doc
|
||||
DOC_REMOTE: https://gitlab-ci-token:${ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
|
||||
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
||||
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
|
||||
|
||||
tests:bookworm:
|
||||
image:
|
||||
|
@ -125,6 +127,7 @@ build:debian-stable:
|
|||
script:
|
||||
- ./build-deb.sh --install-build-deps
|
||||
- rm -fr dist/ldapsaisie-*
|
||||
- dpkg-parsechangelog --format dpkg|awk '/ ldapsaisie /,0'|tail -n +3 > dist/release-notes.md
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/*
|
||||
|
@ -300,6 +303,22 @@ publish:debian-stable:
|
|||
- echo "Publish stable debian packages on APT repository..."
|
||||
- dupload --to debian-stable dist/ldapsaisie*changes
|
||||
|
||||
publish:gitlab:
|
||||
stage: publish
|
||||
image:
|
||||
name: docker.io/alpine/httpie
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
needs:
|
||||
- build:debian-stable
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG != null && $CI_COMMIT_BRANCH == "master"
|
||||
script:
|
||||
- ./.gitlab/publish.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/release-notes.md
|
||||
- dist/release-files.txt
|
||||
|
||||
publish:debian-sid:
|
||||
stage: publish
|
||||
image: debian:stable-slim
|
||||
|
@ -318,3 +337,15 @@ publish:debian-sid:
|
|||
script:
|
||||
- echo "Publish Sid debian packages on APT repository..."
|
||||
- dupload --to debian-sid dist/ldapsaisie*changes
|
||||
|
||||
release:
|
||||
stage: release
|
||||
image:
|
||||
name: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
needs:
|
||||
- publish:gitlab
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG != null && $CI_COMMIT_BRANCH == "master"
|
||||
script:
|
||||
- ./.gitlab/release.sh
|
||||
|
|
14
.gitlab/publish.sh
Executable file
14
.gitlab/publish.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd `dirname $0`/../dist
|
||||
rm -f release-files.txt
|
||||
touch release-files.txt
|
||||
|
||||
for file in *.deb
|
||||
do
|
||||
# The filename can contain only lowercase letters (a-z), uppercase letter (A-Z), numbers (0-9), dots (.),
|
||||
# hyphens (-), or underscores (_).
|
||||
filename=`echo $file|tr '~' '_'|tr '+' '_'|sed s/[^a-zA-Z0-9\.\_\-]//g`
|
||||
https --ignore-stdin --check-status PUT "${PACKAGE_REGISTRY_URL}/${filename}" "JOB-TOKEN: $CI_JOB_TOKEN" "@$file"
|
||||
echo $filename >> release-files.txt
|
||||
done
|
14
.gitlab/release.sh
Executable file
14
.gitlab/release.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
echo "Creating a release for $CI_COMMIT_TAG"
|
||||
|
||||
cd `dirname $0`/../dist
|
||||
|
||||
|
||||
CMD="release-cli create --name $CI_COMMIT_TAG --description release-notes.md --tag-name $CI_COMMIT_TAG"
|
||||
for file in `cat release-files.txt`
|
||||
do
|
||||
CMD="$CMD --assets-link {\"name\":\"$file\",\"url\":\"${PACKAGE_REGISTRY_URL}/$file\"}"
|
||||
done
|
||||
|
||||
$CMD
|
Loading…
Reference in a new issue