162ac904eSgerardnico# https://docs.github.com/en/actions/learn-github-actions/contexts 2*6bc0fc13Sgerardniconame: Scratch Learning Workflow 362ac904eSgerardnico 462ac904eSgerardnico 562ac904eSgerardnico## Expression 662ac904eSgerardnico# https://docs.github.com/en/github-ae@latest/actions/learn-github-actions/expressions 762ac904eSgerardnico## Error: .github/workflows/example-env-github.yml (Line: 53, Col: 26): A mapping was not expected 862ac904eSgerardnico## Means that the expression syntax ${{ }} is not supported 962ac904eSgerardnico 1062ac904eSgerardnico 1162ac904eSgerardnicoon: 1262ac904eSgerardnico # Manually running a workflow from the UI 1362ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#defining-inputs-for-manually-triggered-workflows 1462ac904eSgerardnico # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow#configuring-a-workflow-to-run-manually 1562ac904eSgerardnico # https://docs.github.com/en/actions/learn-github-actions/contexts#inputs-context 1662ac904eSgerardnico workflow_dispatch: 1762ac904eSgerardnico inputs: 1862ac904eSgerardnico versions: 1962ac904eSgerardnico description: 'Version of the interpreter' 2062ac904eSgerardnico required: true 2162ac904eSgerardnico default: "['8.2']" 2262ac904eSgerardnico # https://docs.github.com/en/enterprise-cloud@latest/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputsinput_idtype 2362ac904eSgerardnico type: choice 2462ac904eSgerardnico options: 2562ac904eSgerardnico - "['7.4','8.2']" 2662ac904eSgerardnico - "['8.2']" 2762ac904eSgerardnico - "['7.4']" 2862ac904eSgerardnico 2962ac904eSgerardnico 3062ac904eSgerardnicopermissions: # Setting permissions for the token 3162ac904eSgerardnico contents: read # needed to fetch code 3262ac904eSgerardnico 3362ac904eSgerardnico# A list of the jobs that run in the workflow file. 3462ac904eSgerardnicojobs: 3562ac904eSgerardnico demo-job: # The identifier of the job 3662ac904eSgerardnico 3762ac904eSgerardnico name: Env printing with the matrix version ${{ matrix.version }} # The name of the job 3862ac904eSgerardnico 3962ac904eSgerardnico runs-on: ubuntu-latest 4062ac904eSgerardnico 4162ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategy 4262ac904eSgerardnico strategy: 4362ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast 4462ac904eSgerardnico fail-fast: false 4562ac904eSgerardnico 4662ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix 4762ac904eSgerardnico matrix: 4862ac904eSgerardnico # 2 jobs will run, one for each include entry 4962ac904eSgerardnico # because we don't specify any matrix variables 5062ac904eSgerardnico # All configurations under include will run 5162ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-adding-configurations 5262ac904eSgerardnico # Using context to create matrix 5362ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-contexts-to-create-matrices 5462ac904eSgerardnico # Note you can also set it programmatically: https://docs.github.com/en/actions/learn-github-actions/expressions#example-returning-a-json-object 5562ac904eSgerardnico version: ${{ fromJson(github.event.inputs.versions) }} 5662ac904eSgerardnico 5762ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#env 5862ac904eSgerardnico # https://docs.github.com/en/actions/learn-github-actions/contexts#env-context 5962ac904eSgerardnico # only string, boolean, number 6062ac904eSgerardnico env: 6162ac904eSgerardnico LITERAL_STRING_ENV: lib/plugins/combo 6262ac904eSgerardnico DEPENDENCY_VIA_COMMAND: "${{ matrix.version == '7.4' && '7.4 version' || 'not 7.4 version' }}" 6362ac904eSgerardnico 6462ac904eSgerardnico steps: 6562ac904eSgerardnico 6662ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable 6762ac904eSgerardnico # https://docs.github.com/en/actions/learn-github-actions/variables#passing-values-between-steps-and-jobs-in-a-workflow 6862ac904eSgerardnico # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsenv 6962ac904eSgerardnico - name: Adding a conditional dependant variable 7062ac904eSgerardnico run: | 7162ac904eSgerardnico echo "DEPENDENCY_VIA_ARRAY=${{ fromJson(env.LITERAL_ARRAY_ENV)[matrix.version] }}" >> $GITHUB_ENV 7262ac904eSgerardnico env: 7362ac904eSgerardnico # only string, boolean, number 7462ac904eSgerardnico LITERAL_ARRAY_ENV: '{"7.4":"Dependency Variable for 7.4","8.2":"Dependency Variable for 8.2"}' 7562ac904eSgerardnico 7662ac904eSgerardnico - name: Echo env created 7762ac904eSgerardnico run: | 7862ac904eSgerardnico echo "$LITERAL_STRING_ENV"; 7962ac904eSgerardnico echo "$DEPENDENCY_VIA_COMMAND"; 8062ac904eSgerardnico echo "$DEPENDENCY_VIA_ARRAY"; 8162ac904eSgerardnico 8262ac904eSgerardnico # https://docs.github.com/en/actions/learn-github-actions/contexts#example-printing-context-information-to-the-log 8362ac904eSgerardnico - name: Dump GitHub context 8462ac904eSgerardnico run: echo '${{ toJSON(github) }}' 8562ac904eSgerardnico - name: Dump job context 8662ac904eSgerardnico run: echo '${{ toJSON(job) }}' 8762ac904eSgerardnico - name: Dump steps context 8862ac904eSgerardnico run: echo '${{ toJSON(steps) }}' 8962ac904eSgerardnico - name: Dump runner context 9062ac904eSgerardnico run: echo '${{ toJSON(runner) }}' 9162ac904eSgerardnico - name: Dump strategy context 9262ac904eSgerardnico run: echo '${{ toJSON(strategy) }}' 9362ac904eSgerardnico - name: Dump matrix context 9462ac904eSgerardnico run: echo '${{ toJSON(matrix) }}' 9562ac904eSgerardnico - name: Dump Input context 9662ac904eSgerardnico run: echo '${{ toJSON(inputs) }}' 9762ac904eSgerardnico 98