Π‘Π΅ΠΊΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
ΠΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅: Π΅ΡΠ»ΠΈ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ β ΡΡΠΎ ΡΠ΅ΠΊΡΠ΅Ρ.
Π‘Π΅ΠΊΡΠ΅ΡΡ (secrets.*) β ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΡΠΎΠΊΠ΅Π½Ρ, ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΊΠ»ΡΡΠΈ).
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (vars.*) β Π½Π΅ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ±Π° ΡΠΈΠΏΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² workflow.
ΠΠ΄Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ
- Π£ΡΠΎΠ²Π΅Π½Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ: ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ β Β«Π‘Π΅ΠΊΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅Β».
- Π£ΡΠΎΠ²Π΅Π½Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ: ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ β Β«Π‘Π΅ΠΊΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅Β».
ΠΡΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ΅ ΠΈΠΌΠ΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
- name: Print version
run: echo "ΠΠ΅ΡΡΠΈΡ: ${{ vars.VERSION }}"Π‘Π΅ΠΊΡΠ΅ΡΡ:
- name: Login
run: docker login -u user -p ${{ secrets.DOCKER_PASSWORD }}Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ
1) ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ
on:
workflow_dispatch:
inputs:
env:
description: "ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅"
required: true
default: "staging"
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: ΠΠ΅ΠΏΠ»ΠΎΠΉ
run: echo "Deploy to ${{ github.event.inputs.env }} with api=${{ vars.API_URL }}"2) ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π΅ΡΡΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²
steps:
- name: ΠΠΎΠ³ΠΈΠ½ΠΈΠΌΡΡ Π² registry
uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY_URI }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}3) ΠΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π΅ΠΊΡΠ΅ΡΡ Π² Π»ΠΎΠ³Π°Ρ
ΠΌΠ°ΡΠΊΠΈΡΡΡΡΡΡ (****), ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ β Π½Π΅Ρ. ΠΠ΅ Ρ
ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² vars.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
- ΠΠ΅Π½ΡΠΉΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΡΠ°Π².
- ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ β Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°.
- ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΡΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ Β«ΡΡΠ΅ΠΊΠ»ΠΈΒ» β ΡΡΠ°Π·Ρ ΠΎΡΠ·ΡΠ²Π°ΠΉΡΠ΅.