Add tests, fix jinja evaluations #52
Workflow file for this run
This file contains hidden or 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: 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 }}" |