Skip to content
name: Expression Functions
on:
push:
branches:
- main
issues:
types: [opened, labeled]
jobs:
expression-functions:
runs-on: ubuntu-latest
steps:
- name: Check if string contains substring
if: contains('Hello world', 'llo')
run: echo "The string contains the substring."
- name: Check if string starts with
if: startsWith('Hello world', 'He')
run: echo "The string starts with 'He'."
- name: Check if string ends with
if: endsWith('Hello world', 'ld')
run: echo "The string ends with 'ld'."
- name: Format and echo string
run: echo ${{ format('Hello {0} {1} {2}', 'Mona', 'the', 'Octocat') }}
- name: Join issue labels
if: github.event_name == 'issues'
run: |
echo "Issue labels: ${{ join(github.event.issue.labels.*.name, ', ') }}"
- name: Convert job context to JSON
run: |
echo "Job context in JSON: ${{ toJSON(github.job) }}"
- name: Parse JSON string
run: |
echo "Parsed JSON: ${{ fromJSON('{"hello":"world"}').hello }}"
- name: Hash files
run: |
echo "Hash of files: ${{ hashFiles('**/package-lock.json', '**/Gemfile.lock') }}"
- name: The job has succeeded
if: ${{ success() }}
run: echo "The job has succeeded."
- name: The job has failed
if: ${{ failure() }}
run: echo "The job has failed."