Skip to content

Add tests, fix jinja evaluations #54

Add tests, fix jinja evaluations

Add tests, fix jinja evaluations #54

Workflow file for this run

name: CI Test Action
on:
push:
pull_request:
workflow_dispatch:
jobs:
test-resolve-vars:
name: Test Resolve Vars Action
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Test resolve vars action
id: test-vars
uses: ./
with:
log_outputs: true
static_inputs: |
username=testuser
environment=development
# Jinja2 inputs to evaluate:
# These are intentionally nonsensical, but they demonstrate the syntax
# and they test the tool's ability to evaluate dynamic jinja2 expressions.
jinja_inputs: |
greeting='Hello, ' + 'World!'
is_prod=False
computed_name='${{ 'testuser' }}' + '_' + '${{ 'development' }}'
port_number=8080 if 'true' == 'false' else 443
answer=42
- name: Print outputs
run: |
echo "=== DEBUG: Raw output ==="
echo "steps.test-vars.outputs.all: '${{ steps.test-vars.outputs.all }}'"
echo "=========================="
- name: Verify outputs
run: |
# Check static variables
if [ "${{ fromJSON(steps.test-vars.outputs.all).username }}" != "testuser" ]; then
echo "ERROR: username output doesn't match expected value"
exit 1
fi
if [ "${{ fromJSON(steps.test-vars.outputs.all).environment }}" != "development" ]; then
echo "ERROR: environment output doesn't match expected value"
exit 1
fi
# Check jinja variables
if [ "${{ fromJSON(steps.test-vars.outputs.all).greeting }}" != "Hello, World!" ]; then
echo "ERROR: greeting output doesn't match expected value"
echo "Expected: Hello, World!"
echo "Actual: ${{ fromJSON(steps.test-vars.outputs.all).greeting }}"
exit 1
fi
if [ "${{ fromJSON(steps.test-vars.outputs.all).is_prod }}" != "False" ]; then
echo "ERROR: is_prod output doesn't match expected value"
echo "Expected: False"
echo "Actual: ${{ fromJSON(steps.test-vars.outputs.all).is_prod }}"
exit 1
fi
if [ "${{ fromJSON(steps.test-vars.outputs.all).computed_name }}" != "testuser_development" ]; then
echo "ERROR: computed_name output doesn't match expected value"
echo "Expected: testuser_development"
echo "Actual: ${{ fromJSON(steps.test-vars.outputs.all).computed_name }}"
exit 1
fi
if [ "${{ fromJSON(steps.test-vars.outputs.all).port_number }}" != "443" ]; then
echo "ERROR: port_number output doesn't match expected value"
echo "Expected: 443"
echo "Actual: ${{ fromJSON(steps.test-vars.outputs.all).port_number }}"
exit 1
fi
if [ "${{ fromJSON(steps.test-vars.outputs.all).answer }}" != "42" ]; then
echo "ERROR: answer output doesn't match expected value"
echo "Expected: 42"
echo "Actual: ${{ fromJSON(steps.test-vars.outputs.all).answer }}"
exit 1
fi
echo "✅ All tests passed!"
echo "Static outputs:"
echo " username: ${{ fromJSON(steps.test-vars.outputs.all).username }}"
echo " environment: ${{ fromJSON(steps.test-vars.outputs.all).environment }}"
echo "Jinja outputs:"
echo " greeting: ${{ fromJSON(steps.test-vars.outputs.all).greeting }}"
echo " is_prod: ${{ fromJSON(steps.test-vars.outputs.all).is_prod }}"
echo " computed_name: ${{ fromJSON(steps.test-vars.outputs.all).computed_name }}"
echo " port_number: ${{ fromJSON(steps.test-vars.outputs.all).port_number }}"