# Continuous Deployment Get a common set of Python CI/CD commands \ from various contexts of CA, CI and OCI / OS. ## Features * [X] CA certificates * [X] custom * [X] known * [ ] Continuous Integration platforms * [X] ForgeJo * [ ] Gitea * [ ] GitHub * [X] GitLab * [ ] SourceHut * [X] Operating Systems * [X] Alma → Python 3.11 * [X] 8 * [X] 9 * [X] Alpine → Python 3.11 * [X] 3.18 * [X] 3.19 * [X] Arch → Python 3.12 * [ ] 20231112 * [X] 20240101 * [X] Debian * [X] Bullseye (11) → Python 3.9 * [X] Bookworm (12) → Python 3.11 * [X] Fedora → Python 3.12 * [X] 39 * [X] 40 * [X] Rocky → Python 3.11 * [X] 8 * [X] 9 * [X] Ubuntu * [X] Jammy (22.04) → Python 3.10 * [X] Noble (24.04) → Python 3.12 ## How | Variable | Description | Default | |:--------------|:------------------------|:--------------------------------| | CD_CA_n | Numbered CA certificate | | | CD_DNS | Space separated servers | 9.9.9.9 | | CD_GIT_CHILD | Child Git repository | cd | | CD_GIT_PARENT | Parent Git repository | rwx | | CD_SSH_HOSTS | domain.tld ssh-type pub | | | CD_SSH_KEY | SSH private key | | | CD_URL_ALMA | Alma repository URL | https://repo.almalinux.org | | CD_URL_ALPINE | Alpine repository URL | https://dl-cdn.alpinelinux.org | | CD_URL_ARCH | Arch repository URL | https://geo.mirror.pkgbuild.com | | CD_URL_DEBIAN | Debian repository URL | https://deb.debian.org | | CD_URL_FEDORA | Fedora repository URL | https://rpmfind.net | | CD_URL_ROCKY | Rocky repository URL | https://dl.rockylinux.org | | CD_URL_UBUNTU | Ubuntu repository URL | https://ubuntu.mirrors.ovh.net | ## HTTPS & Python | OS img | crt | upd | Python | |:--------|-----|-----|:-------| | Alma 8 | ☑ | ☑ | ☐ | | Alma 9 | ☑ | ☑ | ☑ 3.9 | | Alpine | ☑ | ☐ | ☐ | | Arch | ☑ | ☑ | ☐ | | Debian | ☐ | ☐ | ☐ | | Fedora | ☑ | ☑ | ☑ 3.12 | | Rocky 8 | ☑ | ☑ | ☐ | | Rocky 9 | ☑ | ☑ | ☑ 3.9 | | Ubuntu | ☐ | ☐ | ☐ | ## Tasks * relay environment module name * show previous states of directories & files * test with github * test with gitea * write tests ### .py * detect ssh private key type * implement project repository cloning * install * openssh * rsync * ruff * shellcheck * write bootstrap entry point ### .sh * handle git cloning credentials * override repository and framework locations * reduce single conditions with && * support opensuse