title: How to set global variables like `COMPOSE_FILE` and `IMAGE_NAME` across reusable workflows and custom actions?
body: <p>In a common CI pattern the following env vars are required by <code>docker compose</code></p>
  <pre><code>COMPOSE_FILE=docker-compose.yml:docker-compose.ci.yml
  IMAGE_NAME=ghcr.io/aaa/bbb/ccc:pull_request_identifier
  </code></pre>
  <p>In this supposed setup the docker-compose.ci.yml would define:</p>
  <pre><code>services:
    someservice:
      image: ${IMAGE_NAME}
  </code></pre>
  <p>So <code>COMPOSE_FILE</code> and <code>IMAGE_NAME</code> are required for all interactions with <code>docker compose</code>.</p>
  <p>If we want to separate out some parts of our workflow for reuse, this becomes very tedious and copy-paste-y:</p>
  <ul>
  <li>Every top-level workflow must define <code>COMPOSE_FILE</code> and <code>IMAGE_NAME</code>, which is duplicative.</li>
  <li>Every time we create a custom action that will be called by more than one step, we have to pass both variables every time. And, tediously, we need to run a step to re-echo them out into the <code>$GITHUB_ENV</code> for that step.</li>
  </ul>
  <p>A nice little hidden gotcha here is that if you try to use a reusable workflow instead of a custom action, you can't actually pass env vars to it at all, as it's being run in the wrong phase and env vars aren't available.</p>
  <p>Is there a way to set <code>COMPOSE_FILE</code> (etc) globally across the workflow and all reusable workflows / custom actions within it?</p>