Compare commits

...

6 commits

Author SHA1 Message Date
Benjamin Renard 2d08374a53
build-deb.sh: exclude docker & build-deb.sh related commits in generated changelog 2023-10-26 18:22:21 +02:00
Benjamin Renard 129cfa537b
Docker: add build-and-push-all.sh 2023-10-26 18:19:20 +02:00
Benjamin Renard f176b626d5
Release 4.2.0-1 2023-10-26 17:52:39 +02:00
Benjamin Renard f9bf3a7597
CI: fully specified image names 2023-10-26 17:44:02 +02:00
Benjamin Renard 06654969d0
CI: publish a new release in Gitlab on new tag 2023-10-26 17:44:02 +02:00
Benjamin Renard e985f50d8a
CI: add build & publish step for debian stable package 2023-10-26 17:44:01 +02:00
10 changed files with 164 additions and 16 deletions

View file

@ -2,15 +2,17 @@ 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:
name: brenard/ldapsaisie:bookworm
name: docker.io/brenard/ldapsaisie:bookworm
entrypoint: [""]
stage: tests
rules:
@ -35,7 +37,7 @@ tests:bookworm:
tests:bullseye:
image:
name: brenard/ldapsaisie:bullseye
name: docker.io/brenard/ldapsaisie:bullseye
entrypoint: [""]
stage: tests
rules:
@ -60,7 +62,7 @@ tests:bullseye:
tests:buster:
image:
name: brenard/ldapsaisie:buster
name: docker.io/brenard/ldapsaisie:buster
entrypoint: [""]
stage: tests
rules:
@ -86,7 +88,7 @@ tests:buster:
tests:stretch:
image:
name: brenard/ldapsaisie:stretch
name: docker.io/brenard/ldapsaisie:stretch
entrypoint: [""]
stage: tests
rules:
@ -101,7 +103,7 @@ tests:stretch:
tests:jessie:
image:
name: brenard/ldapsaisie:jessie
name: docker.io/brenard/ldapsaisie:jessie
entrypoint: [""]
stage: tests
rules:
@ -114,8 +116,24 @@ tests:jessie:
- rm -f .phplint-cache
- /tmp/vendor/bin/phplint src
build:debian-stable:
image: docker.io/brenard/debian-python-deb:debian11
stage: build
cache:
paths:
- .cache/pip
only:
- tags
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/*
build:debian-sid:
image: brenard/debian-python-deb:debian11
image: docker.io/brenard/debian-python-deb:debian11
stage: build
cache:
paths:
@ -131,7 +149,7 @@ build:debian-sid:
build:snapshot:
stage: build
image: alpine
image: docker.io/alpine
only:
- master
script:
@ -142,7 +160,7 @@ build:snapshot:
build:doc:html:
stage: build
image: python:alpine
image: docker.io/python:alpine
cache:
paths:
- .cache/pip
@ -173,7 +191,7 @@ build:doc:html:
build:doc:pdf:
stage: build
image:
name: pink33n/html-to-pdf
name: docker.io/pink33n/html-to-pdf
entrypoint: ["/bin/sh", "-c"]
only:
- master
@ -189,7 +207,7 @@ build:doc:pdf:
build:doc:epub:
stage: build
image:
name: pandoc/core
name: docker.io/pandoc/core
entrypoint: ["/bin/sh", "-c"]
only:
- master
@ -207,7 +225,7 @@ build:doc:epub:
build:doc:append_additional_versions:
stage: build
image: python:alpine
image: docker.io/python:alpine
only:
- master
needs:
@ -232,7 +250,7 @@ build:doc:append_additional_versions:
publish:doc:
stage: publish
image: alpine:latest
image: docker.io/alpine:latest
only:
- master
needs:
@ -252,7 +270,7 @@ publish:doc:
publish:snapshot:
stage: publish
image: alpine:latest
image: docker.io/alpine:latest
only:
- master
needs:
@ -266,9 +284,44 @@ publish:snapshot:
script:
- rsync -atv ldapsaisie-snapshot.tar.gz $SSH_USER@$SSH_HOST:download/ldapsaisie-snapshot.tar.gz
publish:debian-stable:
stage: publish
image: docker.io/debian:stable-slim
needs:
- build:debian-stable
only:
- tags
before_script:
- apt-get update
- apt-get install -y --no-install-recommends rsync openssh-client dupload
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add -
- mkdir ~/.ssh
- echo "$SSH_HOST_KEY" | base64 -d > ~/.ssh/known_hosts
- echo "$DUPLOAD_CONFIG" | base64 -d > ~/.dupload.conf
script:
- 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
only:
- tags
script:
- ./.gitlab/publish.sh
artifacts:
paths:
- dist/release-notes.md
- dist/release-files.txt
publish:debian-sid:
stage: publish
image: debian:stable-slim
image: docker.io/debian:stable-slim
only:
- master
needs:
@ -284,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
only:
- tags
script:
- ./.gitlab/release.sh

14
.gitlab/publish.sh Executable file
View 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
View 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

View file

@ -114,10 +114,11 @@ $GITDCH \
--code-name $DEBIAN_CODENAME \
--output $DIST_DIR/debian/changelog \
--release-notes ../release-notes.md \
--exclude "^Docker: " \
--exclude "^CI: " \
--exclude "^debian: " \
--exclude "\.gitlab-ci\.yml" \
--exclude "build\.sh" \
--exclude "build-deb\.sh" \
--exclude "README\.md" \
--exclude "^Merge branch " \
--verbose "${GITDCH_EXTRA_ARGS[@]}"

22
debian/changelog vendored
View file

@ -1,3 +1,25 @@
ldapsaisie (4.2.0-1) stable; urgency=medium
* PHP 8.2 support
* LSconfig: add escape_key, explode_keys and implode_keys helper methods
* Improve LSldapObject::getDisplayValue() method to match with getValue() method's parameters
* Fix LSattribute::getDisplayValue() when called on updated attribute
* LSattr_ldap::date: replace unique format parameter by a list
* Fix some french translated messages
* Auth:
* LSauth: add filter_function parameter
* LSauthMethod::CAS: fix support of phpCAS >= 1.6.0 and patched Debian Buster 1.3.6-1+deb10u1 version
* Addons
* accesslog:
* Improve displaying changes attributes values
* Fix infinity loop problem handling entry renaming event with the same DN
* ftp: Remove PEAR Net_FTP dependency
* posix: Add deleteHomeDirectoryByFTP function
* supann: Add supannCMSIdEtiquette attribute support
* doc: switch format to Markdown & Mkdocs
-- LdapSaisie project <support+ldapsaisie@easter-eggs.com> Thu, 26 Oct 2023 11:55:52 +0200
ldapsaisie (4.1.0-1) unstable; urgency=medium
* PHP8 compatibility

View file

@ -0,0 +1,5 @@
# syntax = edrevo/dockerfile-plus
FROM debian:bookworm-slim
INCLUDE+ Dockerfile.common

View file

@ -0,0 +1,5 @@
# syntax = edrevo/dockerfile-plus
FROM debian:bullseye-slim
INCLUDE+ Dockerfile.common

5
docker/Dockerfile.buster Normal file
View file

@ -0,0 +1,5 @@
# syntax = edrevo/dockerfile-plus
FROM debian:buster-slim
INCLUDE+ Dockerfile.common

View file

@ -1,4 +1,3 @@
FROM debian:11
# Update/upgrade
RUN apt-get update
RUN apt-get upgrade -y

View file

@ -0,0 +1,18 @@
#!/bin/bash
cd $( dirname $0 )
# Need to use Dockerfile+ (https://github.com/edrevo/dockerfile-plus)
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1
DISTS=(bookworm bullseye buster)
LATEST_DIST=${DISTS[0]}
for dist in ${DISTS[@]}
do
docker build -t brenard/ldapsaisie:$dist -f Dockerfile.$dist .
[ $? -eq 0 ] && docker push brenard/ldapsaisie:$dist
done
docker build -t brenard/ldapsaisie:latest -f Dockerfile.$LATEST_DIST .
[ $? -eq 0 ] && docker push brenard/ldapsaisie:latest