Current implementations would be shell(sh/pwsh/…) command run defined in yaml.
The proposed implementation will allow you to break down your pipeline into composable steps and reuse github actions within the same build job. Without this, you will have to use DIND to run these steps.
# Example job using action
my-job:
run:
- name: greet_user
step: gitlab.com/gitlab-org/ci-cd/runner-tools/echo-step@v1
inputs:
echo: hello $[[ GITLAB_USER_LOGIN ]]
- name: greet_user_again
action: mikefarah/yq@master
inputs:
cmd: echo ["${{ steps.greet_user.outputs.echo }} again!"] | yq .[0]
https://en.m.wikipedia.org/wiki/The_Food_of_the_Gods_(short_story)