Introducing steps

In order to make our template more reusable, introducing a step will allow our users to configure a components flexibly, some ideas from the discussion in #352347 (comment 899154905) and the blueprint architectural

Goal

Allow users to define a step that runs GitHub actions in GitLab CI

Additional details

We will want steps to allow running GitHub Actions flavor as well. So, the directory will already contain action.yaml or action.yml. GitLab will transparently convert action.yaml to step.yaml and run step.yaml.

We will likely implement that in a form of a separate gem that will be able to read actions.yaml and generate a valid step.yaml. The translation should cover 90% of cases to provide compatible environment, in case it would not work user could use this gem to generate step.yaml and update it. The purpose of separate gem is that it could be used outside of GitLab.

The idea behind this would be:

  • we own our own syntax of step.yaml
  • you could either use pre-existing actions from github just using github.com/path/to/action
  • convert it to GitLab and be able to fix it
Edited by Dov Hershkovitch