ΠΠΎΠ½ΡΠ΅ΠΊΡΡ GitVerse
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ workflow. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΡΠ°ΡΡΡΠΎΠ², ΠΈΠΌΡΠ½ Π²Π΅ΡΠΎΠΊ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ workflow.
ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ:
- ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π²Π΅ΡΠΊΠ΅;
- Π΄ΠΆΠΎΠ±Π°Ρ ΠΈ ΡΠ°Π³Π°x (ΠΈΡ ΡΡΠ°ΡΡΡΠ°Ρ , ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ );
- ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅, ΡΠΎΠ±ΡΡΠΈΠΈ-ΡΡΠΈΠ³Π³Π΅ΡΠ΅, ΡΠ΅ΠΊΡΠ΅ΡΠ°Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ;
- ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (runner, ΠΠ‘, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΏΡΡΡ ΠΈ Ρ.Π΄.).
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π΄Π΅Π»Π°ΡΡ workflow Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΌ β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² runtime, Π½Π΅ Π·Π°Ρ Π°ΡΠ΄ΠΊΠΎΠΆΠΈΠ²Π°Ρ ΠΈΡ Π² YAML.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ${{ ... }} ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΠΎ Π²ΡΠ΅Ρ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
(if:, run:, env: ΠΈ Ρ.Π΄.).
name: ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
on: [push]
jobs:
show-context:
runs-on: ubuntu-latest
steps:
- name: ΠΡΠ²Π΅Π΄Π΅ΠΌ Π²Π΅ΡΠΊΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠ° ΠΏΡΡΠ°
run: echo "Commit by ${{ gitverse.actor }} on branch ${{ gitverse.ref_name }}"| ΠΠΎΠ½ΡΠ΅ΠΊΡΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ |
|---|---|---|
gitverse | ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ.Ρ.Π΄ | ${{ gitverse.repository }} |
github | Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠΎ ΠΈ gitverse, Π΄Π»Ρ ΡΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ | ${{ github.repository }} |
env | ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ | ${{ env.MY_VAR }} |
job | ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ job Π² workflow | ${{ job.build.result }} |
jobs | ΠΠ°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ΅Ρ job Π² workflow | ${{ jobs.build.result }} |
runner | Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΠΠ‘, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°) | ${{ runner.os }} |
secrets | Π‘Π΅ΠΊΡΠ΅ΡΡ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ | ${{ secrets.TOKEN }} |
strategy | ΠΠ°Π½Π½ΡΠ΅ ΠΎ matrix-ΡΠ±ΠΎΡΠΊΠ΅ | ${{ strategy.job-index }} |
matrix | Π’Π΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ matrix-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² | ${{ matrix.python-version }} |
steps | Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ² | ${{ steps.test.outputs.coverage }} |
inputs | ΠΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ workflow_call | ${{ inputs.name }} |
vars | ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ | ${{ vars.ENVIRONMENT }} |
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ
steps:
- name: ΠΠ΅ΠΏΠ»ΠΎΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π²Π΅ΡΠΊΠΈ main
if: ${{ gitverse.ref_name == 'master' && gitverse.event_name == 'push' }}
run: echo "Deploying to production..."
- name: ΠΠ΅ΡΠ°ΡΠ°Π΅ΠΌ env ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
run: echo '${{ toJson(env) }}