A GitHub Action for verifying Open Ecosystem Challenge solutions. This action runs automated checks against challenge submissions to ensure participants have successfully completed the required objectives.
The Open Ecosystem Challenges are hands-on mini challenges focused on cloud native technologies, observability, AI/ML, and open source topics. Each challenge has two verification mechanisms:
- Local Smoke Tests: Run in the participant's Codespace to check basic success criteria
- Full Verification Workflow: Runs via this GitHub Action when solutions are pushed to the main branch, performing comprehensive validation without revealing solutions
This repository provides the verification workflow component.
Add this action to your workflow file (e.g., .github/workflows/verify.yml):
name: Verify Challenge Solution
on:
push:
branches:
- main
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Verify challenge
uses: dynatrace-oss/open-ecosystem-challenge-verifier@main
with:
challenge: '01-echoes-lost-in-orbit_easy'| Input | Description | Required |
|---|---|---|
challenge |
The name of the challenge to verify. Must match the challenge folder name in this repository. | Yes |
- The action receives a challenge identifier as input
- It loads the corresponding verification script from
src/challenges/<challenge-name>.js - The verification script checks the solution against predefined success criteria.
- Returns success or failure with detailed feedback
- Add a new file
src/adventures/<challenge-name>/<difficulty>.jswith your verification logic - Export a verification function
- Update
src/index.jsto handle the new challenge identifier - Follow the existing pattern for feedback messages
- Bundle everything by running
npm run build
- Stick to defined objectives in output - makes it easier for users without giving away additional hints
- Validate YAML/JSON format before checking content
- Check specifications against official documentation
- Provide links to relevant challenge objectives
- Use colored output for better readability (info, notice, error, setFailed)