test: add version tests (#153)

* test: add versioning tests

Signed-off-by: Justin Chadwell <me@jedevc.com>

* feat: add output for action

To chain on from the github action, it's very useful to be able to get
the output from an action.

Signed-off-by: Justin Chadwell <me@jedevc.com>

---------

Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
Justin Chadwell 2024-10-25 16:40:22 +01:00 committed by GitHub
parent ad6a4e308a
commit 33170d0344
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 105 additions and 2 deletions

95
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,95 @@
name: Test
on:
push:
branches: ["main"]
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
# Enable manual trigger for easy debugging
workflow_dispatch:
permissions:
contents: read
pull-requests: write
jobs:
version:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: "Use latest"
id: use-latest
uses: ./
with:
version: latest
verb: core
args: version
- name: "Use latest (check)"
run: |
target='${{ steps.use-latest.outputs.output }}'
if [[ "$target" =~ v[0-9]*\.[0-9]*\.[0-9]* ]]; then
echo "matches"
exit 0
else
echo "does not match"
exit 1
fi
- name: "Use v0.13.5"
id: use-v0-13-5
uses: ./
with:
version: v0.13.5
verb: core
args: version
- name: "Use v0.13.5 (check)"
run: |
target='${{ steps.use-v0-13-5.outputs.output }}'
if [[ "$target" =~ v0\.13\.5 ]]; then
echo "matches"
exit 0
else
echo "does not match"
exit 1
fi
- name: "Use commit"
id: use-commit
uses: ./
with:
commit: 540b4d1490f253054140f9249e823adf111e1c06
verb: core
args: version
- name: "Use commit (check)"
run: |
target='${{ steps.use-commit.outputs.output }}'
if [[ "$target" =~ v0\.13\.6-[0-9]+-540b4d1490f2 ]]; then
echo "matches"
exit 0
else
echo "does not match"
exit 1
fi
- name: "Use head"
id: use-head
uses: ./
with:
commit: head
verb: core
args: version
- name: "Use head (check)"
run: |
target='${{ steps.use-commit.outputs.output }}'
if [[ "$target" =~ v[0-9]*\.[0-9]*\.[0-9]*-[0-9]+-[0-9a-f]{12} ]]; then
echo "matches"
exit 0
else
echo "does not match"
exit 1
fi

View file

@ -37,6 +37,10 @@ inputs:
description: "Whether to stop the Dagger Engine after this run" description: "Whether to stop the Dagger Engine after this run"
required: false required: false
default: "true" default: "true"
outputs:
output:
description: "Job output"
value: ${{ steps.exec.outputs.stdout }}
runs: runs:
using: "composite" using: "composite"
steps: steps:
@ -65,17 +69,21 @@ runs:
curl -fsS https://dl.dagger.io/dagger/install.sh \ curl -fsS https://dl.dagger.io/dagger/install.sh \
| BIN_DIR=${prefix_dir}/bin DAGGER_VERSION="$VERSION" DAGGER_COMMIT="$COMMIT" sh | BIN_DIR=${prefix_dir}/bin DAGGER_VERSION="$VERSION" DAGGER_COMMIT="$COMMIT" sh
- shell: bash - id: exec
shell: bash
env: env:
INPUT_MODULE: ${{ inputs.module }} INPUT_MODULE: ${{ inputs.module }}
run: | run: |
tmpout=$(mktemp)
cd ${{ inputs.workdir }} && { \ cd ${{ inputs.workdir }} && { \
DAGGER_CLOUD_TOKEN=${{ inputs.cloud-token }} \ DAGGER_CLOUD_TOKEN=${{ inputs.cloud-token }} \
dagger \ dagger \
${{ inputs.dagger-flags }} \ ${{ inputs.dagger-flags }} \
${{ inputs.verb }} \ ${{ inputs.verb }} \
${INPUT_MODULE:+-m $INPUT_MODULE} \ ${INPUT_MODULE:+-m $INPUT_MODULE} \
${{ inputs.args }}; } ${{ inputs.args }}; } | tee "${tmpout}"
(echo -n "stdout=" && cat "${tmpout}") >> "$GITHUB_OUTPUT"
- if: inputs.engine-stop == 'true' - if: inputs.engine-stop == 'true'
shell: bash shell: bash