ΠΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² GitVerse β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΈΡ.
ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ (Next.js / React), ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ SSR, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ SEO ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ.
cd landings
npm install
npm run dev
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: http://localhost:3000
ΠΠ°ΠΏΡΡΠΊ unit-ΡΠ΅ΡΡΠΎΠ²:
npm test --prefix landings
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΡΡΡΠ° ΠΎ ΠΏΠΎΠΊΡΡΡΠΈΠΈ:
npm run test:coverage --prefix landings
ΠΡΠΎΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ security-Π°ΡΠ΄ΠΈΡΠ°:
ΠΡΠΎΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ GitVerse CI/CD Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΡ.
ΠΡΠ΅ pipelineβΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ .gitverse/workflows/.
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ workflows
| Workflow | Π’ΡΠΈΠ³Π³Π΅Ρ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
build.yaml |
workflow_dispatch |
Π‘ΠΎΠ±ΠΈΡΠ°Π΅Ρ Docker-ΠΎΠ±ΡΠ°Π· ΠΈΠ· distribution/Dockerfile ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ Π΅Π³ΠΎ Π² GitVerse Registry (gitverse.ru/gitverse-demo/landings:tag). |
deploy.yaml |
workflow_dispatch Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ version |
ΠΠΎΠΏΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π· ΠΈΠ· GitVerse Registry Π² Evolution Artifact Registry (cloud.ru) ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Evolution Container Apps. |
pr_check_security.yaml |
pull_request, workflow_dispatch |
ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ PR Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ security-Π°ΡΠ΄ΠΈΡ: β’ ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ SBOM (CycloneDX) β’ Π‘ΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ (Trivy, OSV) β’ ΠΠΎΠΈΡΠΊ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² (Gitleaks) β’ ΠΠ½Π°Π»ΠΈΠ· Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Job Summary. |
unit_tests.yaml |
pull_request, workflow_dispatch |
ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ unit-ΡΠ΅ΡΡΡ Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ node_modules Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ. ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΡΡΡΡ ΠΎ ΠΏΠΎΠΊΡΡΡΠΈΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°ΡΡΠ΅ΡΠ°ΠΊΡ. |
release.yaml |
push Π½Π° ΡΠ΅Π³ (*) |
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π»ΠΈΠ·Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ: β’ Π‘ΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΠΎΠ±ΡΠ°Π· Π² GitVerse Registry β’ ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π· Ρ ΠΏΠΎΠΌΠΎΡΡΡ cosign (Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ) β’ Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π»ΠΈΠ· ΡΠ΅ΡΠ΅Π· GitVerse API Ρ changelog ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ |
π‘ ΠΡΠ΅ workflows ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² Telegram ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ (ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ), Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π·Π°ΠΏΡΡΠΊ, PR ( Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ) ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ.
Π Π΅Π»ΠΈΠ·Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Sigstore cosign Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ:
ΠΠΎΠ΄ΠΏΠΈΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ registry ΠΊΠ°ΠΊ OCI-Π°ΡΡΠ΅ΡΠ°ΠΊΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
cosign verify --key <public-key> gitverse.ru/gitverse-demo/landings:<SHAxxx.sig>