From 0f7db5c61214152daee750175ace33815759b028 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Wed, 17 Jul 2024 22:31:04 +0200 Subject: [PATCH 01/11] readme/filter --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 3c9a4e0..2de8564 100644 --- a/readme.md +++ b/readme.md @@ -94,4 +94,5 @@ from various contexts of CA, CI and OCI / OS. ### .sh +* filter production & staging branches * support opensuse From 3922c14f69eb40739d671f9dff314f0d45c1686e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 19 Jul 2024 21:54:52 +0200 Subject: [PATCH 02/11] mv --- spcd.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spcd.sh b/spcd.sh index 59ac806..08abab7 100644 --- a/spcd.sh +++ b/spcd.sh @@ -367,6 +367,9 @@ Acquire::https::Verify-Peer False; spcd_echo "SPCD_PYTHON_COMMAND" "SPCD_PYTHON_PACKAGE" "SPCD_PYTHON_PACKAGES" # variables [ -n "${SPCD_CA_1}" ] && SPCD_CA=true + # + spcd_split + spcd_echo "SPCD_CA" # continuous integration platform if [ -n "${GITHUB_ACTIONS}" ]; then # github → gitea → forgejo @@ -434,8 +437,6 @@ Acquire::https::Verify-Peer False; [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" # spcd_split - spcd_echo "SPCD_CA" - spcd_split spcd_echo "SPCD_PROJECT_ROOT" \ "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" "SPCD_PROJECT_BRANCH" # TODO move to Python From 7de27df47b8819f29dd89e2c92169f833fedd4c3 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 19 Jul 2024 21:59:09 +0200 Subject: [PATCH 03/11] ci --- spcd.sh | 138 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/spcd.sh b/spcd.sh index 08abab7..2b96360 100644 --- a/spcd.sh +++ b/spcd.sh @@ -59,6 +59,75 @@ spcd_list_working_directory() { spcd_set_environment_variables() { spcd_step "Set environment variables" + # continuous integration platform + if [ -n "${GITHUB_ACTIONS}" ]; then + # github → gitea → forgejo + if [ -n "${GITHUB_SERVER_URL}" ]; then + SPCD_PROJECT_ROOT="$(dirname "${GITHUB_SERVER_URL}")//" + [ -n "${GITHUB_TOKEN}" ] && + SPCD_PROJECT_ROOT="${SPCD_PROJECT_ROOT}${GITHUB_TOKEN}@" + SPCD_PROJECT_ROOT="${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" + else + spcd_error_ci "GITHUB_SERVER_URL" + fi + if [ -n "${GITHUB_REPOSITORY}" ]; then + SPCD_PROJECT_PATH="$(dirname "${GITHUB_REPOSITORY}")" + SPCD_PROJECT_NAME="$(basename "${GITHUB_REPOSITORY}")" + else + spcd_error_ci "GITHUB_REPOSITORY" + fi + if [ -n "${GITHUB_REF_NAME}" ]; then + SPCD_PROJECT_BRANCH="${GITHUB_REF_NAME}" + else + spcd_error_ci "GITHUB_REF_NAME" + fi + elif [ -n "${GITLAB_CI}" ]; then + # gitlab + if [ -n "${CI_SERVER_PROTOCOL}" ]; then + if [ -n "${CI_REGISTRY_USER}" ]; then + if [ -n "${CI_REGISTRY_PASSWORD}" ]; then + if [ -n "${CI_SERVER_FQDN}" ]; then + SPCD_PROJECT_ROOT="${CI_SERVER_PROTOCOL}\ +://${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}@${CI_SERVER_FQDN}" + if [ -n "${CI_PROJECT_NAMESPACE}" ]; then + SPCD_PROJECT_PATH="${CI_PROJECT_NAMESPACE}" + if [ -n "${CI_PROJECT_NAME}" ]; then + SPCD_PROJECT_NAME="${CI_PROJECT_NAME}" + else + spcd_error_ci "CI_PROJECT_NAME" + fi + else + spcd_error_ci "CI_PROJECT_NAMESPACE" + fi + else + spcd_error_ci "CI_SERVER_FQDN" + fi + else + spcd_error_ci "CI_REGISTRY_PASSWORD" + fi + else + spcd_error_ci "CI_REGISTRY_USER" + fi + else + spcd_error_ci "CI_SERVER_PROTOCOL" + fi + if [ -n "${CI_COMMIT_BRANCH}" ]; then + SPCD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}" + else + spcd_error_ci "CI_COMMIT_BRANCH" + fi + else + # unsupported + spcd_error_ci "ø" + fi + [ -n "${SPCD_PROJECT_ROOT}" ] || spcd_error_ci "SPCD_PROJECT_ROOT" + [ -n "${SPCD_PROJECT_PATH}" ] || spcd_error_ci "SPCD_PROJECT_PATH" + [ -n "${SPCD_PROJECT_NAME}" ] || spcd_error_ci "SPCD_PROJECT_NAME" + [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" + # + spcd_split + spcd_echo "SPCD_PROJECT_ROOT" \ + "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" "SPCD_PROJECT_BRANCH" # set path SPCD_PATH="$(realpath "${0}")" spcd_echo "SPCD_PATH" @@ -370,75 +439,6 @@ Acquire::https::Verify-Peer False; # spcd_split spcd_echo "SPCD_CA" - # continuous integration platform - if [ -n "${GITHUB_ACTIONS}" ]; then - # github → gitea → forgejo - if [ -n "${GITHUB_SERVER_URL}" ]; then - SPCD_PROJECT_ROOT="$(dirname "${GITHUB_SERVER_URL}")//" - [ -n "${GITHUB_TOKEN}" ] && - SPCD_PROJECT_ROOT="${SPCD_PROJECT_ROOT}${GITHUB_TOKEN}@" - SPCD_PROJECT_ROOT="${SPCD_PROJECT_ROOT}$(basename "${GITHUB_SERVER_URL}")" - else - spcd_error_ci "GITHUB_SERVER_URL" - fi - if [ -n "${GITHUB_REPOSITORY}" ]; then - SPCD_PROJECT_PATH="$(dirname "${GITHUB_REPOSITORY}")" - SPCD_PROJECT_NAME="$(basename "${GITHUB_REPOSITORY}")" - else - spcd_error_ci "GITHUB_REPOSITORY" - fi - if [ -n "${GITHUB_REF_NAME}" ]; then - SPCD_PROJECT_BRANCH="${GITHUB_REF_NAME}" - else - spcd_error_ci "GITHUB_REF_NAME" - fi - elif [ -n "${GITLAB_CI}" ]; then - # gitlab - if [ -n "${CI_SERVER_PROTOCOL}" ]; then - if [ -n "${CI_REGISTRY_USER}" ]; then - if [ -n "${CI_REGISTRY_PASSWORD}" ]; then - if [ -n "${CI_SERVER_FQDN}" ]; then - SPCD_PROJECT_ROOT="${CI_SERVER_PROTOCOL}\ -://${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}@${CI_SERVER_FQDN}" - if [ -n "${CI_PROJECT_NAMESPACE}" ]; then - SPCD_PROJECT_PATH="${CI_PROJECT_NAMESPACE}" - if [ -n "${CI_PROJECT_NAME}" ]; then - SPCD_PROJECT_NAME="${CI_PROJECT_NAME}" - else - spcd_error_ci "CI_PROJECT_NAME" - fi - else - spcd_error_ci "CI_PROJECT_NAMESPACE" - fi - else - spcd_error_ci "CI_SERVER_FQDN" - fi - else - spcd_error_ci "CI_REGISTRY_PASSWORD" - fi - else - spcd_error_ci "CI_REGISTRY_USER" - fi - else - spcd_error_ci "CI_SERVER_PROTOCOL" - fi - if [ -n "${CI_COMMIT_BRANCH}" ]; then - SPCD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}" - else - spcd_error_ci "CI_COMMIT_BRANCH" - fi - else - # unsupported - spcd_error_ci "ø" - fi - [ -n "${SPCD_PROJECT_ROOT}" ] || spcd_error_ci "SPCD_PROJECT_ROOT" - [ -n "${SPCD_PROJECT_PATH}" ] || spcd_error_ci "SPCD_PROJECT_PATH" - [ -n "${SPCD_PROJECT_NAME}" ] || spcd_error_ci "SPCD_PROJECT_NAME" - [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" - # - spcd_split - spcd_echo "SPCD_PROJECT_ROOT" \ - "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" "SPCD_PROJECT_BRANCH" # TODO move to Python case "${SPCD_PM}" in "${SPCD_PM_APK}" | "${SPCD_PM_APT}") SPCD_PKG_SSH="openssh-client" ;; From 6544d17f7702b4413fb4bee403655b6c06f3519e Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Fri, 19 Jul 2024 22:02:42 +0200 Subject: [PATCH 04/11] errors --- spcd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spcd.sh b/spcd.sh index 2b96360..ce27397 100644 --- a/spcd.sh +++ b/spcd.sh @@ -809,8 +809,8 @@ SPCD_BOX_RIGHT="╶" SPCD_BOX_UP="╰" SPCD_BOX_VERTICAL="│" -SPCD_ERROR_CI=2 -SPCD_ERROR_OS=1 +SPCD_ERROR_CI=1 +SPCD_ERROR_OS=2 SPCD_OS_ALMA="alma" SPCD_OS_ALPINE="alpine" From 1e1092235b67d2f0c4bdb3d72ca6372d4d937a41 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 16:21:34 +0200 Subject: [PATCH 05/11] envars --- spcd.sh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/spcd.sh b/spcd.sh index ce27397..66b6ffe 100644 --- a/spcd.sh +++ b/spcd.sh @@ -10,9 +10,10 @@ # main spcd_main() { spcd_list_environment_variables + spcd_set_environment_variables + # spcd_list_working_directory # - spcd_set_environment_variables spcd_set_packages_repositories spcd_set_packages_configuration # @@ -38,7 +39,7 @@ spcd_main() { spcd_switch_to_python "${@}" } -# context +# steps spcd_list_environment_variables() { spcd_step "List environment variables" @@ -49,14 +50,6 @@ spcd_list_environment_variables() { done } -spcd_list_working_directory() { - spcd_step "List working directory" - spcd_lwd__path="$(realpath .)" - spcd_ls "${spcd_lwd__path}" -} - -# steps - spcd_set_environment_variables() { spcd_step "Set environment variables" # continuous integration platform @@ -448,6 +441,12 @@ Acquire::https::Verify-Peer False; esac } +spcd_list_working_directory() { + spcd_step "List working directory" + spcd_lwd__path="$(realpath .)" + spcd_ls "${spcd_lwd__path}" +} + spcd_set_packages_repositories() { spcd_step "Set packages repositories" case "${SPCD_OS_ID}" in From c031b07b0f77adbc8523f39c550268468929c218 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 16:36:13 +0200 Subject: [PATCH 06/11] default branches --- spcd.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spcd.sh b/spcd.sh index 66b6ffe..c039494 100644 --- a/spcd.sh +++ b/spcd.sh @@ -1,6 +1,8 @@ #! /usr/bin/env sh # defaults +[ -n "${SPCD_BRANCH_RELEASE}" ] || SPCD_BRANCH_RELEASE="main" +[ -n "${SPCD_BRANCH_STAGING}" ] || SPCD_BRANCH_STAGING="dev" [ -n "${SPCD_DNS}" ] || SPCD_DNS="\ 9.9.9.9 \ " From 60f1a717c594bc7c3165be00ae4676c2f62a496b Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 16:51:14 +0200 Subject: [PATCH 07/11] ci comments --- spcd.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/spcd.sh b/spcd.sh index c039494..b5ed78b 100644 --- a/spcd.sh +++ b/spcd.sh @@ -54,9 +54,9 @@ spcd_list_environment_variables() { spcd_set_environment_variables() { spcd_step "Set environment variables" - # continuous integration platform + # continuous integration / github → gitea → forgejo if [ -n "${GITHUB_ACTIONS}" ]; then - # github → gitea → forgejo + # project root if [ -n "${GITHUB_SERVER_URL}" ]; then SPCD_PROJECT_ROOT="$(dirname "${GITHUB_SERVER_URL}")//" [ -n "${GITHUB_TOKEN}" ] && @@ -65,27 +65,38 @@ spcd_set_environment_variables() { else spcd_error_ci "GITHUB_SERVER_URL" fi + # project path & name if [ -n "${GITHUB_REPOSITORY}" ]; then + # project path SPCD_PROJECT_PATH="$(dirname "${GITHUB_REPOSITORY}")" + # project name SPCD_PROJECT_NAME="$(basename "${GITHUB_REPOSITORY}")" else spcd_error_ci "GITHUB_REPOSITORY" fi + # project branch if [ -n "${GITHUB_REF_NAME}" ]; then SPCD_PROJECT_BRANCH="${GITHUB_REF_NAME}" else spcd_error_ci "GITHUB_REF_NAME" fi + # continuous integration / gitlab elif [ -n "${GITLAB_CI}" ]; then - # gitlab + # project root / protocol if [ -n "${CI_SERVER_PROTOCOL}" ]; then + # project root / login if [ -n "${CI_REGISTRY_USER}" ]; then + # project root / password if [ -n "${CI_REGISTRY_PASSWORD}" ]; then + # project root / host if [ -n "${CI_SERVER_FQDN}" ]; then + # project root SPCD_PROJECT_ROOT="${CI_SERVER_PROTOCOL}\ ://${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}@${CI_SERVER_FQDN}" + # project path if [ -n "${CI_PROJECT_NAMESPACE}" ]; then SPCD_PROJECT_PATH="${CI_PROJECT_NAMESPACE}" + # project name if [ -n "${CI_PROJECT_NAME}" ]; then SPCD_PROJECT_NAME="${CI_PROJECT_NAME}" else @@ -106,15 +117,17 @@ spcd_set_environment_variables() { else spcd_error_ci "CI_SERVER_PROTOCOL" fi + # project branch if [ -n "${CI_COMMIT_BRANCH}" ]; then SPCD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}" else spcd_error_ci "CI_COMMIT_BRANCH" fi + # continuous integration / unsupported else - # unsupported spcd_error_ci "ø" fi + # [ -n "${SPCD_PROJECT_ROOT}" ] || spcd_error_ci "SPCD_PROJECT_ROOT" [ -n "${SPCD_PROJECT_PATH}" ] || spcd_error_ci "SPCD_PROJECT_PATH" [ -n "${SPCD_PROJECT_NAME}" ] || spcd_error_ci "SPCD_PROJECT_NAME" From 88cb222ebedc275db1a8e204341c608b776aa89b Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 16:58:26 +0200 Subject: [PATCH 08/11] branch first --- spcd.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/spcd.sh b/spcd.sh index b5ed78b..9a2719e 100644 --- a/spcd.sh +++ b/spcd.sh @@ -56,6 +56,12 @@ spcd_set_environment_variables() { spcd_step "Set environment variables" # continuous integration / github → gitea → forgejo if [ -n "${GITHUB_ACTIONS}" ]; then + # project branch + if [ -n "${GITHUB_REF_NAME}" ]; then + SPCD_PROJECT_BRANCH="${GITHUB_REF_NAME}" + else + spcd_error_ci "GITHUB_REF_NAME" + fi # project root if [ -n "${GITHUB_SERVER_URL}" ]; then SPCD_PROJECT_ROOT="$(dirname "${GITHUB_SERVER_URL}")//" @@ -74,14 +80,14 @@ spcd_set_environment_variables() { else spcd_error_ci "GITHUB_REPOSITORY" fi - # project branch - if [ -n "${GITHUB_REF_NAME}" ]; then - SPCD_PROJECT_BRANCH="${GITHUB_REF_NAME}" - else - spcd_error_ci "GITHUB_REF_NAME" - fi # continuous integration / gitlab elif [ -n "${GITLAB_CI}" ]; then + # project branch + if [ -n "${CI_COMMIT_BRANCH}" ]; then + SPCD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}" + else + spcd_error_ci "CI_COMMIT_BRANCH" + fi # project root / protocol if [ -n "${CI_SERVER_PROTOCOL}" ]; then # project root / login @@ -117,12 +123,6 @@ spcd_set_environment_variables() { else spcd_error_ci "CI_SERVER_PROTOCOL" fi - # project branch - if [ -n "${CI_COMMIT_BRANCH}" ]; then - SPCD_PROJECT_BRANCH="${CI_COMMIT_BRANCH}" - else - spcd_error_ci "CI_COMMIT_BRANCH" - fi # continuous integration / unsupported else spcd_error_ci "ø" From 108c007872089d7bf0944ef114ba4cd90c9b51fa Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 17:07:50 +0200 Subject: [PATCH 09/11] rejigger --- spcd.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spcd.sh b/spcd.sh index 9a2719e..4ac221e 100644 --- a/spcd.sh +++ b/spcd.sh @@ -127,15 +127,15 @@ spcd_set_environment_variables() { else spcd_error_ci "ø" fi - # + # extra check + [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" [ -n "${SPCD_PROJECT_ROOT}" ] || spcd_error_ci "SPCD_PROJECT_ROOT" [ -n "${SPCD_PROJECT_PATH}" ] || spcd_error_ci "SPCD_PROJECT_PATH" [ -n "${SPCD_PROJECT_NAME}" ] || spcd_error_ci "SPCD_PROJECT_NAME" - [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" # spcd_split - spcd_echo "SPCD_PROJECT_ROOT" \ - "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" "SPCD_PROJECT_BRANCH" + spcd_echo "SPCD_PROJECT_BRANCH" \ + "SPCD_PROJECT_ROOT" "SPCD_PROJECT_PATH" "SPCD_PROJECT_NAME" # set path SPCD_PATH="$(realpath "${0}")" spcd_echo "SPCD_PATH" From 9a9f5b92d7cde2a969cee4eb8fd83b0c600b85d6 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 17:16:36 +0200 Subject: [PATCH 10/11] check project branch --- spcd.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spcd.sh b/spcd.sh index 4ac221e..b8d7ed1 100644 --- a/spcd.sh +++ b/spcd.sh @@ -127,8 +127,11 @@ spcd_set_environment_variables() { else spcd_error_ci "ø" fi - # extra check - [ -n "${SPCD_PROJECT_BRANCH}" ] || spcd_error_ci "SPCD_PROJECT_BRANCH" + # check project variables + case "${SPCD_PROJECT_BRANCH}" in + "${SPCD_BRANCH_RELEASE}" | "${SPCD_BRANCH_STAGING}") ;; + *) spcd_error_ci "SPCD_PROJECT_BRANCH" ;; + esac [ -n "${SPCD_PROJECT_ROOT}" ] || spcd_error_ci "SPCD_PROJECT_ROOT" [ -n "${SPCD_PROJECT_PATH}" ] || spcd_error_ci "SPCD_PROJECT_PATH" [ -n "${SPCD_PROJECT_NAME}" ] || spcd_error_ci "SPCD_PROJECT_NAME" From b2a882079accf6142e8c139f63dd09261ee3b773 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Sat, 20 Jul 2024 17:23:29 +0200 Subject: [PATCH 11/11] readme/branches --- readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/readme.md b/readme.md index 2de8564..3c9a4e0 100644 --- a/readme.md +++ b/readme.md @@ -94,5 +94,4 @@ from various contexts of CA, CI and OCI / OS. ### .sh -* filter production & staging branches * support opensuse