A step must place a multi-line TLS certificate into an environment variable for later steps in the same job via $GITHUB_ENV. Which pattern is correct?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Multi-line GITHUB_ENV values need the documented delimiter (heredoc-style) form so later steps see the full cert. Raw single-line NAME=value cannot carry free newlines; set-env is gone; job outputs are a different channel.
Full explanation below image
Full Explanation
GITHUB_ENV accepts simple NAME=value lines for single-line values. Multi-line content must use the delimiter form, commonly NAME<<EOF followed by the body and a closing EOF line, so the runner parses the full block. That value is then available to subsequent steps in the same job. Job outputs are a separate cross-step/cross-job mechanism and still require careful handling for secrets. The ::set-env:: command was removed/deprecated and must not be used. Avoid printing certificates to logs; mask sensitive values when possible. Remember GITHUB_ENV never crosses job boundaries—pass artifacts or outputs intentionally if another job needs the material (prefer secrets/OIDC over shipping private keys).