v1.2.0: script: add a gitlab-ci script

Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
GnomeZworc 2024-04-02 23:53:24 +02:00
commit faa767ee08
Signed by: nicolas.boufideline
GPG key ID: 4406BBBF8845D632
3 changed files with 120 additions and 0 deletions

View file

@ -0,0 +1,58 @@
default:
image: debian:11
stages:
- build
- publish
- release
build:
stage: build
image: golang:1.21-alpine
before_script:
- apk update && apk add --no-cache make git
script:
- make build_password
artifacts:
paths:
- ./bin/*
publish_main:
stage: publish
image: golang:1.21-alpine
variables:
VER: latest
before_script:
- apk update && apk add --no-cache make git curl
script:
- make publish_password
needs:
- build
only:
- main
release_tag:
stage: publish
image: golang:1.21-alpine
variables:
VER: ${CI_COMMIT_TAG}
before_script:
- apk update && apk add --no-cache make git curl
script:
- make publish_password
needs:
- build
only:
- tags
release_job:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- if: $CI_COMMIT_TAG
before_script:
- apk update && apk add --no-cache bash curl
script:
- bash ./scripts/gitlab_release.sh -r ./docs/release/$CI_COMMIT_TAG* -a ./bin/
needs:
- build

2
config/params.json Normal file
View file

@ -0,0 +1,2 @@
{
}

60
scripts/update_ci.sh Executable file
View file

@ -0,0 +1,60 @@
#!/bin/sh
#list="build deploy latest release test"
#for elem in ${list}
#do
# echo "Build ${elem}"
# j2 -f json \
# .gitlab/templates/${elem}.yml.j2 \
# .gitlab/templates/.container_list.json \
# -o .gitlab/ci/${elem}.yml
#done
exec_with_dry_run () {
if [[ ${1} -eq ${FLAGS_TRUE} ]]; then
echo "# ${2}"
else
eval "${2}" 2> /tmp/error || \
{
echo -e "failed with following error";
output=$(cat /tmp/error | sed -e "s/^/ error -> /g");
echo -e "${output}";
return 1;
}
fi
return 0
}
main () {
[[ -f ./libs/shflags ]] && . ./libs/shflags || eval "$(curl --silent https://gitlab.g3e.fr/h6n/tools/-/raw/main/libs/shflags)"
DEFINE_boolean 'dryrun' false 'Enable dry-run mode' 'd'
DEFINE_string 'output_path' '' 'Release documentation path' 'o'
DEFINE_string 'template_path' '' 'Path of artifact list' 't'
DEFINE_string 'params_path' '' 'Path of artifact list' 'p'
FLAGS "$@" || exit $?
eval set -- "${FLAGS_ARGV}"
exec_with_dry_run ${FLAGS_dryrun} "pip install j2cli" > /dev/null
ls -a ${FLAGS_template_path} | while read TEMPLATE
do
file=$(echo ${TEMPLATE} | grep -Ev '^[\.]*$')
[[ ${file} != "" ]] && \
{
basename=$(echo ${file%.*})
exec_with_dry_run ${FLAGS_dryrun} "j2 -f json ${FLAGS_template_path}/${file} ${FLAGS_params_path} -o ${FLAGS_output_path}/${basename}"
}
done
}
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && \
{
main "$@" && exit 0 || exit 1
}
[[ "${BASH_SOURCE[0]}" == "" ]] && \
{
main "$@" && exit 0 || exit 1
}