Skip to content

docs: address review feedback on module specification #233

docs: address review feedback on module specification

docs: address review feedback on module specification #233

Workflow file for this run

name: Spec Compliance / MiniWDL
on:
push:
paths:
- 'SPEC.md'
schedule:
- cron: '0 3 * * 3'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install `spectool`
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release download --repo openwdl/spectool --pattern '*x86_64*linux*'
tar -xzf spectool*.tar.gz
chmod +x spectool
sudo mv spectool /usr/local/bin/
rm -rf spectool*.tar.gz
spectool --version
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install `miniwdl`
run: |
pip install git+https://github.com/chanzuckerberg/miniwdl.git@main
miniwdl --version
- name: Create results directory
run: mkdir -p ./.results/
- name: Run the compliance tests
run: |
echo "📊 Running compliance tests for \`${{ github.repository }}:${{ github.ref_name }}\`..."
spectool test \
"miniwdl run ~{path} --input ~{input}" \
--redirect-stdout \
--all-capabilities \
--inject-wdl-version development \
--output-selector .outputs \
--label "MiniWDL / WDL 1.4" \
-s $PWD -vv > ./.results/shield.json 2> ./.results/logs.txt
cat ./.results/logs.txt
cat ./.results/shield.json
cp SPEC.md ./.results/SPEC.md
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: miniwdl-results
path: ./.results/
- name: Publish badge JSON
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
BRANCH="${{ github.ref_name }}"
RUN_ID="${{ github.run_id }}"
REPO="${{ github.repository }}"
RUN_URL="https://github.com/$REPO/actions/runs/$RUN_ID"
REPO_URL="https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git"
git fetch origin $BRANCH
git checkout $BRANCH
mv ./.results/shield.json shields/miniwdl.json
git add shields/miniwdl.json
# Skip if the shield contents didn't change; the README run-URL
# rewrite below always produces a diff, so without this guard we
# commit a no-op every scheduled run.
if git diff --cached --quiet -- shields/miniwdl.json; then
echo "🟢 Shield unchanged; skipping commit"
exit 0
fi
# Update README only if needed
sed_pattern="https://raw.githubusercontent.com/openwdl/wdl/.*/shields/miniwdl.json"
new_url="https://raw.githubusercontent.com/openwdl/wdl/$BRANCH/shields/miniwdl.json"
run_pattern="https://github.com/$REPO/actions/runs/[0-9]+"
new_run="https://github.com/$REPO/actions/runs/$RUN_ID"
echo $new_run
echo $new_url
if grep -qE "$sed_pattern" README.md; then
git pull
sed -E -i "/miniwdl\.json/s|$sed_pattern|$new_url|g" README.md
sed -E -i "/miniwdl\.json/s|$run_pattern|$new_run|g" README.md
git add README.md
fi
# Commit only if there are staged changes
if ! git diff --cached --quiet; then
git commit -m "chore: updates MiniWDL shield badge"
git push $REPO_URL $BRANCH
else
echo "🟢 No changes to commit"
fi