ci: add workflow examples with tenv
and tofu
#10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: TF Tests | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize, closed] | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
if: github.event.action != 'closed' || github.event.pull_request.merged | |
permissions: | |
actions: read # Required for workflow query and artifact download. | |
contents: read # Required for repository checkout. | |
issues: read # Required for getting PR branch from issue comment. | |
pull-requests: write # Required for commenting on PR. | |
statuses: write # Required for setting commit status from issue comment. | |
strategy: | |
fail-fast: false | |
matrix: | |
cli_uses: [tofu, terraform] | |
test: | |
- 10_fail_invalid_resource_type | |
- 11_fail_data_source_error | |
- 50_pass_one | |
- 51_pass_character_limit | |
- 52_pass_format_diff | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: Setup TF (via tenv) | |
env: | |
CLI_USES: ${{ matrix.cli_uses }} | |
TENV_TOOL: ${{ matrix.cli_uses == 'terraform' && 'tf' || 'tofu' }} | |
run: | | |
LATEST_COSIGN=$(curl https://api.github.com/repos/sigstore/cosign/releases/latest | jq -r .tag_name | tr -d "v\", ") | |
LATEST_TENV=$(curl --silent https://api.github.com/repos/tofuutils/tenv/releases/latest|jq -r .tag_name) | |
curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign_${LATEST_COSIGN}_amd64.deb" | |
curl -O -L "https://github.com/tofuutils/tenv/releases/latest/download/tenv_${LATEST_TENV}_amd64.deb" | |
sudo dpkg -i "cosign_${LATEST_COSIGN}_amd64.deb" "tenv_${LATEST_TENV}_amd64.deb" | |
tenv ${TENV_TOOL} install latest && ${CLI_USES} --version | |
- name: Provision TF | |
id: tf | |
continue-on-error: true | |
uses: ./ | |
# uses: devsectop/tf-via-pr-comments@069fd20e039d1ee5fba48b8a319752e44451782a # v10 | |
with: | |
chdir_prefix: tests/ | |
cli_uses: ${{ matrix.cli_uses }} | |
command_input: ${{ format('-tf={0} -chdir={1}', github.event.action != 'closed' && 'plan' || 'apply', matrix.test) }} | |
cache_plugins: false | |
recreate_comment: true | |
- name: Echo TF | |
run: | | |
echo "command: ${{ steps.tf.outputs.command }}" | |
echo "plan_id: ${{ steps.tf.outputs.plan_id }}" | |
echo "tf_fmt: ${{ steps.tf.outputs.tf_fmt }}" | |
echo "tf_output: ${{ steps.tf.outputs.tf_output }}" | |
- name: Echo github-script context | |
if: always() | |
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 | |
with: | |
script: console.log(JSON.stringify(context, null, 2)) | |
- name: Echo github context | |
if: always() | |
env: | |
MATRIX_CONTEXT: ${{ toJSON(matrix) }} | |
GITHUB_CONTEXT: ${{ toJSON(github) }} | |
run: | | |
echo "$MATRIX_CONTEXT" | |
echo "$GITHUB_CONTEXT" |