TL;DR—Continue using lowercase OpenTofu input variable names, but prefix the corresponding GitHub Actions secret/variable names with an underscore. Then add the following step to your continuous delivery workflow:
- uses: easyware-io/export-to-env@v1
with:
secrets: ${{ toJSON(secrets) }}
vars: ${{ toJSON(vars) }}
only: ^_.*
prefix: TF_VAR
transform: lowercase