spcd/readme.md
2024-07-21 20:50:19 +02:00

105 lines
3.8 KiB
Markdown

# Shell to Python Continuous Deployment
Get a common set of Python CI & CD commands \
from various contexts of CA, CI and OCI / OS.
## Features
* Certification Authority certificates
* [X] custom
* [X] known
* Continuous Integration platforms
* [X] ForgeJo
* [X] Gitea
* [X] GitHub
* [X] GitLab
* [ ] SourceHut
* Operating Systems
* [X] Alma
* [X] 9
* [X] 8
* [X] Alpine
* [X] 3.20
* [X] 3.19
* [X] Arch
* [X] 20240101
* [ ] 20231112
* [X] Debian
* [X] Bookworm (12)
* [ ] Bullseye (11)
* [X] Fedora → Python 3.12
* [X] 40
* [X] 39
* [X] Rocky
* [X] 9
* [X] 8
* [X] Ubuntu
* [X] Noble (24.04)
* [X] Jammy (22.04)
## How
| Variable | Description | Default |
|:--------------------|:--------------------------|:--------------------------------|
| SPCD_BRANCH_RELEASE | Release deployment branch | main |
| SPCD_BRANCH_STAGING | Staging deployment branch | dev |
| SPCD_BRANCH_FEATURE | Feature deployment branch | f |
| SPCD_CA_n | Numbered CA certificate | |
| SPCD_DNS | Space separated servers | 9.9.9.9 |
| SPCD_GIT_MAIN | Main Git repository | spcd |
| SPCD_GIT_ROOT | Root Git repository | rwx |
| SPCD_SSH_HOSTS | domain.tld ssh-type pub | |
| SPCD_SSH_KEY | SSH private key | |
| SPCD_URL_ALMA | Alma repository URL | https://repo.almalinux.org |
| SPCD_URL_ALPINE | Alpine repository URL | https://dl-cdn.alpinelinux.org |
| SPCD_URL_ARCH | Arch repository URL | https://geo.mirror.pkgbuild.com |
| SPCD_URL_DEBIAN | Debian repository URL | https://deb.debian.org |
| SPCD_URL_FEDORA | Fedora repository URL | https://rpmfind.net |
| SPCD_URL_ROCKY | Rocky repository URL | https://dl.rockylinux.org |
| SPCD_URL_UBUNTU | Ubuntu repository URL | https://ubuntu.mirrors.ovh.net |
## Packages
| OS image | s | u | py | py++ | gviz | shch | shf | ruf | plantuml |
|:----------------|---|---|:-----|:-----|:-----|:-----|:----|:----|:----------|
| Alpine 3.20 | ☑ | ☐ | | 3.12 | 9.0 | 0.10 | 3.8 | 0.4 | 1.2024.4 |
| Alpine 3.19 | ☑ | ☐ | | 3.11 | 9.0 | 0.9 | 3.7 | | 1.2023.12 |
| Arch 20240101 | ☑ | ☑ | | 3.12 | 12.0 | 0.10 | 3.8 | 0.5 | 1.2023.13 |
| Arch 20231112 | ☑ | ☑ | | 3.12 | 12.0 | 0.10 | 3.8 | 0.5 | 1.2023.13 |
| Debian Bookworm | ☐ | ☐ | | 3.11 | 2.42 | 0.9 | 3.6 | | 1.2020.2 |
| Debian Bullseye | ☐ | ☐ | | 3.9 | 2.42 | 0.7 | | | 1.2020.2 |
| Ubuntu Noble | ☐ | ☐ | | 3.12 | 2.42 | 0.9 | 3.8 | | 1.2020.2 |
| Ubuntu Jammy | ☐ | ☐ | | 3.10 | 2.42 | 0.8 | 3.4 | | 1.2020.2 |
| Fedora 40 | ☑ | ☑ | 3.12 | 3.13 | 9.0 | 0.9 | 3.7 | 0.4 | 1.2024.6 |
| Fedora 39 | ☑ | ☑ | 3.12 | 3.13 | 8.1 | 0.9 | 3.5 | 0.4 | 1.2024.6 |
| Alma 9 | ☑ | ☑ | 3.9 | 3.12 | 2.44 | e0.8 | | | e1.2024.6 |
| Rocky 9 | ☑ | ☑ | 3.9 | 3.12 | 2.44 | e0.8 | | | e1.2024.6 |
| Alma 8 | ☑ | ☑ | | 3.12 | 2.40 | e0.6 | | | e1.2024.6 |
| Rocky 8 | ☑ | ☑ | | 3.12 | 2.40 | e0.6 | | | e1.2024.6 |
## Tasks
* relay environment module name
* write tests
### .py
* detect ssh private key type
* implement project repository cloning
* install
* epel
* plantuml
* shellcheck
* graphviz
* openssh
* pip
* ruff
* rsync
* shfmt
* lint
* .py
* .sh
### .sh
* support opensuse