Shell to Python Continuous Deployment
https://spcd.rwx.work
|
||
---|---|---|
.forgejo/workflows | ||
cd | ||
.gitea | ||
.github | ||
.gitignore | ||
.gitlab-ci.yml | ||
.shellcheckrc | ||
cd.sh | ||
license.md | ||
pyproject.toml | ||
readme.md |
Continuous Deployment
Get a common set of Python CI/CD commands
from various contexts of CA, CI and OCI / OS.
Features
- CA certificates
- custom
- known
- Continuous Integration platforms
- ForgeJo
- Gitea
- GitHub
- GitLab
- SourceHut
- Operating Systems
- Alma → Python 3.11
- 8
- 9
- Alpine → Python 3.11
- 3.18
- 3.19
- Arch → Python 3.12
- 20231112
- 20240101
- Debian
- Bullseye (11) → Python 3.9
- Bookworm (12) → Python 3.11
- Fedora → Python 3.12
- 39
- 40
- Rocky → Python 3.11
- 8
- 9
- Ubuntu
- Jammy (22.04) → Python 3.10
- Noble (24.04) → Python 3.12
- Alma → Python 3.11
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