Compare commits

..

17 Commits
main ... main

8 changed files with 53 additions and 26 deletions

View File

@ -48,9 +48,9 @@ steps:
- name: trigger downstream builds - name: trigger downstream builds
image: plugins/downstream image: plugins/downstream
settings: settings:
server: https://drone.autonomic.zone server: https://build.coopcloud.tech
token: token:
from_secret: decentral1se_token from_secret: coopcloud_drone_token
fork: true fork: true
repositories: repositories:
- coop-cloud/drone-abra - coop-cloud/drone-abra
@ -72,7 +72,7 @@ steps:
roomid: "IFazIpLtxiScqbHqoa:autonomic.zone" roomid: "IFazIpLtxiScqbHqoa:autonomic.zone"
userid: "@autono-bot:autonomic.zone" userid: "@autono-bot:autonomic.zone"
accesstoken: accesstoken:
from_secret: autono_bot_access_token from_secret: autonobot_rocketchat_access_token
depends_on: depends_on:
- run shellcheck - run shellcheck
- run flake8 - run flake8

8
.gitea/ISSUE_TEMPLATE.md Normal file
View File

@ -0,0 +1,8 @@
---
name: "Do not use this issue tracker"
about: "Do not use this issue tracker"
title: "Do not use this issue tracker"
labels: []
---
Please report your issue on [`coop-cloud/organising`](https://git.coopcloud.tech/coop-cloud/organising)

View File

@ -9,6 +9,22 @@
# abra x.x.x (UNRELEASED) # abra x.x.x (UNRELEASED)
# abra 10.0.5 (2021-09-06)
- Fix catalogue version listing parsing.
# abra 10.0.4 (2021-09-06)
- Understand how to parse the new catalogue versions listing.
# abra 10.0.3 (????-??-??)
- Sorry folks, no change log.
# abra 10.0.2 (????-??-??)
- Sorry folks, no change log.
# abra 10.0.1 (2021-07-30) # abra 10.0.1 (2021-07-30)
- New `recipe .. lint` command ([#202](https://git.autonomic.zone/coop-cloud/abra/issues/202)) - New `recipe .. lint` command ([#202](https://git.autonomic.zone/coop-cloud/abra/issues/202))

View File

@ -15,7 +15,7 @@ RUN mkdir -p ~/.abra/apps
RUN mkdir -p ~/.abra/vendor RUN mkdir -p ~/.abra/vendor
RUN mkdir -p ~/.ssh/ RUN mkdir -p ~/.ssh/
RUN ssh-keyscan -p 2222 git.autonomic.zone > ~/.ssh/known_hosts RUN ssh-keyscan -p 2222 git.coopcloud.tech > ~/.ssh/known_hosts
RUN curl -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 --output ~/.abra/vendor/jq RUN curl -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 --output ~/.abra/vendor/jq
RUN chmod +x ~/.abra/vendor/jq RUN chmod +x ~/.abra/vendor/jq

17
abra
View File

@ -2,10 +2,10 @@
# shellcheck disable=SC2154 # shellcheck disable=SC2154
GIT_URL="https://git.autonomic.zone/coop-cloud/" GIT_URL="https://git.coopcloud.tech/coop-cloud/"
ABRA_APPS_URL="https://apps.coopcloud.tech" ABRA_APPS_URL="https://apps.coopcloud.tech"
ABRA_DIR="${ABRA_DIR:-$HOME/.abra}" ABRA_DIR="${ABRA_DIR:-$HOME/.abra}"
ABRA_VERSION="10.0.1" ABRA_VERSION="10.0.5"
ABRA_BACKUP_DIR="${ABRA_BACKUP_DIR:-$ABRA_DIR/backups}" ABRA_BACKUP_DIR="${ABRA_BACKUP_DIR:-$ABRA_DIR/backups}"
ABRA_VENDOR_DIR="$ABRA_DIR/vendor" ABRA_VENDOR_DIR="$ABRA_DIR/vendor"
ABRA_APPS_JSON="${ABRA_DIR}/apps.json" ABRA_APPS_JSON="${ABRA_DIR}/apps.json"
@ -679,11 +679,6 @@ pwqgen_native() {
shuf -n 3 /usr/share/dict/words | tr -dc 'a-zA-Z0-9' | tr -d '\n' shuf -n 3 /usr/share/dict/words | tr -dc 'a-zA-Z0-9' | tr -d '\n'
} }
# FIXME 3wc: update or remove
if [ -z "$ABRA_ENV" ] && [ -f .env ] && type direnv > /dev/null 2>&1 && ! direnv status | grep -q 'Found RC allowed true'; then
error "direnv is blocked, run direnv allow"
fi
###### Parse apps.json ###### Parse apps.json
get_recipes() { get_recipes() {
@ -702,7 +697,7 @@ get_recipe_versions() {
if [ "$recipe_json" = "null" ]; then if [ "$recipe_json" = "null" ]; then
declare -a RECIPE_VERSIONS declare -a RECIPE_VERSIONS
else else
mapfile -t RECIPE_VERSIONS < <(echo "$recipe_json" | $JQ -r ".versions | keys | .[]" - | sort) mapfile -t RECIPE_VERSIONS < <(echo "$recipe_json" | $JQ -r ".versions | .[] | keys | add")
fi fi
} }
@ -837,7 +832,7 @@ ensure_stack_deployed() {
for service in $(docker ps -f "name=$STACK_NAME" -q); do for service in $(docker ps -f "name=$STACK_NAME" -q); do
debug "Polling $service for deployment status" debug "Polling $service for deployment status"
healthcheck=$(docker inspect --format "{{ json .State }}" "$service" | jq "try(.Health.Status // \"missing\")") healthcheck=$(docker inspect --format "{{ json .State }}" "$service" | $JQ "try(.Health.Status // \"missing\")")
name=$(docker inspect --format '{{ index .Config.Labels "com.docker.swarm.service.name" }}' "$service") name=$(docker inspect --format '{{ index .Config.Labels "com.docker.swarm.service.name" }}' "$service")
if [[ ${MISSING[*]} =~ ${name} ]] || [[ ${HEALTHY[*]} =~ ${name} ]]; then if [[ ${MISSING[*]} =~ ${name} ]] || [[ ${HEALTHY[*]} =~ ${name} ]]; then
@ -1719,7 +1714,7 @@ sub_app_secret_generate(){
warning "These generated secrets are now stored as encrypted data on your server" warning "These generated secrets are now stored as encrypted data on your server"
warning "Please take a moment to make sure you have saved a copy of the passwords" warning "Please take a moment to make sure you have saved a copy of the passwords"
warning "Abra is not able to show the password values in plain text again" warning "Abra is not able to show the password values in plain text again"
warning "See https://docs.cloud.autonomic.zone/secrets/ for more on secrets" warning "See https://docs.coopcloud.tech/secrets/ for more on secrets"
msg_already_outputted="true" msg_already_outputted="true"
fi fi
@ -2655,7 +2650,7 @@ sub_upgrade() {
if [[ "$abra___dev" == "true" ]]; then if [[ "$abra___dev" == "true" ]]; then
curl https://install.abra.coopcloud.tech | bash -s -- --dev --no-deps curl https://install.abra.coopcloud.tech | bash -s -- --dev --no-deps
else else
curl https://install.abra.coopcloud.tech | bash --no-deps curl https://install.abra.coopcloud.tech | bash -s -- --no-deps
fi fi
} }

View File

@ -14,6 +14,7 @@ HOME_PATH = expanduser("~/")
CLONES_PATH = Path(f"{HOME_PATH}/.abra/apps").absolute() CLONES_PATH = Path(f"{HOME_PATH}/.abra/apps").absolute()
REPOS_TO_SKIP = ( REPOS_TO_SKIP = (
"abra", "abra",
"abra-aur",
"abra-apps", "abra-apps",
"abra-capsul", "abra-capsul",
"abra-gandi", "abra-gandi",
@ -21,6 +22,7 @@ REPOS_TO_SKIP = (
"apps", "apps",
"auto-apps-json", "auto-apps-json",
"auto-mirror", "auto-mirror",
"aur-abra-git",
"backup-bot", "backup-bot",
"coopcloud.tech", "coopcloud.tech",
"coturn", "coturn",
@ -33,6 +35,7 @@ REPOS_TO_SKIP = (
"organising", "organising",
"pyabra", "pyabra",
"radicle-seed-node", "radicle-seed-node",
"tagcmp",
"stack-ssh-deploy", "stack-ssh-deploy",
"swarm-cronjob", "swarm-cronjob",
"tyop", "tyop",
@ -63,7 +66,7 @@ def _run_cmd(cmd, shell=False, **kwargs):
def get_repos_json(): def get_repos_json():
""" Retrieve repo list from Gitea """ """ Retrieve repo list from Gitea """
url = "https://git.autonomic.zone/api/v1/orgs/coop-cloud/repos" url = "https://git.coopcloud.tech/api/v1/orgs/coop-cloud/repos"
log.info(f"Retrieving {url}") log.info(f"Retrieving {url}")

View File

@ -139,8 +139,13 @@ def get_app_metadata(app_path):
return metadata return metadata
def get_cached_versions(cached_apps_json, app_name):
versions = cached_apps_json[app_name]["versions"]
return [list(k)[0] for k in [version.keys() for version in versions]]
def get_app_versions(app_path, cached_apps_json): def get_app_versions(app_path, cached_apps_json):
versions = {} versions = []
chdir(app_path) chdir(app_path)
@ -155,7 +160,7 @@ def get_app_versions(app_path, cached_apps_json):
app_name = basename(app_path) app_name = basename(app_path)
try: try:
existing_tags = cached_apps_json[app_name]["versions"].keys() existing_tags = get_cached_versions(cached_apps_json, app_name)
except KeyError: except KeyError:
existing_tags = [] existing_tags = []
@ -171,9 +176,8 @@ def get_app_versions(app_path, cached_apps_json):
if service in ("null", "---"): if service in ("null", "---"):
continue continue
if ( if tag in existing_tags and service in get_cached_versions(
tag in existing_tags cached_apps_json, app_name
and service in cached_apps_json[app_name]["versions"][tag]
): ):
log.info(f"Skipping {tag} because we've already processed it") log.info(f"Skipping {tag} because we've already processed it")
existing_versions = cached_apps_json[app_name]["versions"][tag][service] existing_versions = cached_apps_json[app_name]["versions"][tag][service]
@ -206,7 +210,7 @@ def get_app_versions(app_path, cached_apps_json):
parsed_services.append(service) parsed_services.append(service)
versions[tag] = service_versions versions.append({tag: service_versions})
_run_cmd(f"git checkout {initial_branch}") _run_cmd(f"git checkout {initial_branch}")
@ -220,7 +224,7 @@ def main():
skopeo_login() skopeo_login()
repos_json = get_repos_json() repos_json = get_repos_json()
clone_all_apps(repos_json) # clone_all_apps(repos_json)
with open(args.output, "w", encoding="utf-8") as handle: with open(args.output, "w", encoding="utf-8") as handle:
dump( dump(

View File

@ -2,7 +2,7 @@
# shellcheck disable=SC2154,SC2034 # shellcheck disable=SC2154,SC2034
ABRA_VERSION="10.0.1" ABRA_VERSION="10.0.5"
GIT_URL="https://git.coopcloud.tech/coop-cloud/abra" GIT_URL="https://git.coopcloud.tech/coop-cloud/abra"
ABRA_SRC="$GIT_URL/raw/tag/$ABRA_VERSION/abra" ABRA_SRC="$GIT_URL/raw/tag/$ABRA_VERSION/abra"
ABRA_DIR="${ABRA_DIR:-$HOME/.abra}" ABRA_DIR="${ABRA_DIR:-$HOME/.abra}"
@ -161,7 +161,8 @@ function install_requirements {
sudo apt update && sudo apt install -y \ sudo apt update && sudo apt install -y \
passwdqc \ passwdqc \
pwgen pwgen \
git
echo "Install Docker (https://docs.docker.com/engine/install/debian/)?" echo "Install Docker (https://docs.docker.com/engine/install/debian/)?"
prompt_confirm prompt_confirm
@ -169,7 +170,7 @@ function install_requirements {
else else
echo "Sorry, we only support Debian based distributions at the moment" echo "Sorry, we only support Debian based distributions at the moment"
echo "You'll have to install the requirements manually for your distribution" echo "You'll have to install the requirements manually for your distribution"
echo "See https://git.autonomic.zone/coop-cloud/abra#requirements for more" echo "See https://git.coopcloud.tech/coop-cloud/abra#requirements for more"
fi fi
} }