This is an old revision of the document!


Table of Contents

Struktura

definuje se v .github/workflows, napr. build_workflow.yml

name: JMENO
run-name: nepovinne - delší popis
on: push
env:
  promenna1: hodnota1
  
jobs:
 unikátní_název_jobu:
   runs_on: windows-latest
   outputs:
     cislo: ${{ steps.vystup.outputs.promenna }}
   steps:
   - run: echo "ahoj, promenna1: ${{env.promenna1}}"
   - run: echo "promenna=3" >> $GITHUB_OUTPUT
     id: vystup
   - name: failure
     id: aaa
     run: exit 1
   - name: If block
     if: ${{ failure() && steps.aaa.conclusion == 'failure' }}

Proměnné

${{runner.os}}
${{matrix.version}} … provede krok několikrát, doplní data ze sekce matrix pro každý běh jiná

root sekce

on

push.branches: -master, 'releases/' … nastavení push requestu v určitých GIT větvích
pull_request.branches: - master, develop … pull requesty
workflow_dispach: …
=== workflow_call === workflow_call
<code> inputs: config-path: required: true type: string secrets: token: required: true </code> workflow_call.outputs.PRVNI.description: “popis”
workflow_call.outputs.PRVNI.value: ${{ job.EXAMPLE.outputs.output1 }} ===concurency=== běh na více prostředích concurency.group: environment-${{github.ref}}
concurency.cancel-in-progress: true
===jobs=== ==== job ==== runs_on: ubuntu-latest … na jakém agentoviúworkeru job pojede
outputs: … vystupy
outputs.vystup1: ${{ steps.step1.outputs.proměnná }}
if: github.ref_name == 'master' … podmínka pro spuštění jobu
stragegy: … strategie
strategy.matrix.target: [dev, stage, prod]
permissions:
permissions.contents: read
permissions.pull-requests: write
uses: octo-org/another-repo/.github/workflows/workflow.yml@v1 … volání jiného workflow
uses.with.config-path: .github/configdata.yml
uses.secrets:envPAT: ${{ secrets.envPAT }}
steps:
==== Kroky, steps ==== == run == spustí příkaz
== actions/cache == uses: actions/cache@v1.2.1
with:
with.path: ~/.m2 … ve kterém adresáři se cachuje. ~/.m2 pro maven, **/node_modules pro node
with.key: ${{ runner.os }}-cache
with.restore-keys: ““
== actions/checkout == == actions/setup-node@v3 == with.node-version: '16' with.registry-url: https://registry.npmjs.org/ == actions/setup-java == with.java-version: '11'
with.distribution: 'temurin'
with.cache: 'maven'
== docker/setup-buildx-action == == docker/login-action == with.username: ${{ secrets.DOCKER_USR }}
with.password: ${{ secrets.DOCKER_PWD }}