# πŸ“¦ РССстр экшСнов (CI/CD) ВсС ΡΠΊΡˆΠ΅Π½Ρ‹ Π² этой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ **Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π΅Ρ€ΠΊΠ°Π»Π°ΠΌΠΈ** ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Они настроСны Π½Π° автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ). ## πŸ›  ДоступныС ΡΠΊΡˆΠ΅Π½Ρ‹ ### 1. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΡΠΊΡˆΠ΅Π½Ρ‹ (Π Π°Π½Ρ‚Π°ΠΉΠΌ ΠΈ ΠΊΠΎΠ΄) * **`actions/checkout`** * *НазначСниС:* ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° рСпозитория Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ€Π°Π½Π½Π΅Ρ€Π°. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² 95% ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ². * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Checkout Repository uses: actions/checkout@v4 ``` * **`actions/setup-python`** * *НазначСниС:* Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ° Python. * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Install Python uses: actions/setup-python@v5 ``` ### 2. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ АртСфакты (Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ²) * **`actions/cache`** * *НазначСниС:* Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ тяТСлых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ сборками (слои, кэш компиляторов, статика). * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Cache Virtualenv uses: actions/cache@v4 ``` * **`actions/upload-artifact`** * *НазначСниС:* Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ², ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² тСстирования ΠΈΠ»ΠΈ сборок. * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Save Build uses: actions/upload-artifact@v4 ``` * **`actions/download-artifact`** * *НазначСниС:* Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π½Π΅Π΅ сохранСнных Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для дСплоя собранного ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄ΠΆΠΎΠ±Π΅). * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Download Build uses: actions/download-artifact@v4 ``` ### 3. Docker ΠΈ ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ * **`actions/login-action`** *(Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ с docker/login-action)* * *НазначСниС:* БСзопасная авторизация Π² локальном Container Registry ΠΈΠ»ΠΈ внСшнСм рССстрС. * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Registry Login uses: actions/login-action@v3 ``` * **`actions/build-push-action`** *(Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ с docker/build-push-action)* * *НазначСниС:* Π‘Π±ΠΎΡ€ΠΊΠ° Docker-ΠΎΠ±Ρ€Π°Π·Π° ΠΈΠ· Dockerfile ΠΈ Π΅Π³ΠΎ автоматичСская ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² рССстр. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ локальноС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ слоСв сборки. * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Build & Push Image uses: actions/build-push-action@v6 ``` ### 4. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘Π΅Ρ€Π²Π΅Ρ€Π°ΠΌΠΈ (Π”Π΅ΠΏΠ»ΠΎΠΉ) * **`actions/ssh-action`** *(Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ с appleboy/ssh-action)* * *НазначСниС:* Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ запуск bash-ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… сСрвСрах ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ SSH (пСрСзапуск Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²). * *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:* ```yaml - name: Remote Deploy Command uses: actions/ssh-action@v1 ```