Spec about the order of evaluation of mapping values


I’m an author of actionlint and I was reported an issue related to specification of workflow execution at actionlint#74.

Let’s say we have the following env configuration.

  IS_QA: "qa"
  PROJECT: "important"
  LOCAL_TAG: "${{env.IS_QA}}-latest"
  AWS_TASKDEF: "project-${{env.PROJECT}}-something"

Here the third item is depending on the first item and the fourth item is depending on the second item.

Is the order of execution in mapping values defined? Is it guaranteed that the evaluation of IS_QA: ... line happens before the evaluation of LOCAL_TAG: ... line? As far as I know, order of mapping values is not defined (unordered) in YAML semantics. How about specification of GitHub Actions?

Currently actionlint causes an error for such cases but I’m not sure it is correct behavior.