This is one of a suite of OpenTofu related actions - find them at dflook/terraform-github-actions.
Retrieves the root-level outputs from an OpenTofu remote state.
-
backend_typeThe name of the OpenTofu plugin used for backend state
- Type: string
- Required
-
workspaceOpenTofu workspace to get the outputs for
- Type: string
- Optional
- Default:
default
-
backend_configList of OpenTofu backend config values, one per line.
with: backend_config: token=${{ secrets.BACKEND_TOKEN }}
- Type: string
- Optional
-
backend_config_fileList of OpenTofu backend config files to use, one per line. Paths should be relative to the GitHub Actions workspace
with: backend_config_file: prod.backend.tfvars
- Type: string
- Optional
-
TERRAFORM_CLOUD_TOKENSAPI tokens for cloud hosts, of the form
<host>=<token>. Multiple tokens may be specified, one per line. These tokens may be used with theremotebackend.e.g:
env: TERRAFORM_CLOUD_TOKENS: app.terraform.io=${{ secrets.TF_CLOUD_TOKEN }}
With other registries:
env: TERRAFORM_CLOUD_TOKENS: | app.terraform.io=${{ secrets.TF_CLOUD_TOKEN }} tofu.example.com=${{ secrets.TF_REGISTRY_TOKEN }}
- Type: string
- Optional
An output will be created for each root-level output in the OpenTofu remote state.
For example, with a remote state that has an output created using:
output "service_hostname" {
value = "example.com"
}Running this action will produce a service_hostname output with the same value.
See tofu-output for details.
This example sends a request to a url that has previously been provisioned by OpenTofu, by fetching the url from the remote state in S3.
name: Send request
on:
push:
branches:
- main
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
jobs:
get_remote_state:
runs-on: ubuntu-latest
name: Run Test
steps:
- name: Get remote state
uses: dflook/tofu-remote-state@v1
id: remote-state
with:
backend_type: s3
backend_config: |
bucket=terraform-github-actions
key=tofu-remote-state
region=eu-west-2
- name: Send request
run: |
curl "${{ steps.remote-state.outputs.url }}"