CI/CDБправочная докумСнтацияБСкрСты ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π‘Π΅ΠΊΡ€Π΅Ρ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ простоС: Ссли раскрытиС значСния Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ β€” это сСкрСт.

Π‘Π΅ΠΊΡ€Π΅Ρ‚Ρ‹ (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.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

  • ΠœΠ΅Π½ΡΠΉΡ‚Π΅ сСкрСты рСгулярно; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΡ€Π°Π².
  • Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… β€” Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°.
  • Никогда Π½Π΅ Π·Π°ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ сСкрСты Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠΎΠ΄. Если Β«ΡƒΡ‚Π΅ΠΊΠ»ΠΈΒ» β€” сразу ΠΎΡ‚Π·Ρ‹Π²Π°ΠΉΡ‚Π΅.

Π’Ρ‹ нашли Ρ‡Ρ‚ΠΎ искали?