Skip to content

Commit 7b885bc

Browse files
feat(just): add docs workflow dispatch management recipes
Signed-off-by: Cameron Smith <cameron.ray.smith@gmail.com>
1 parent 2ee3234 commit 7b885bc

File tree

1 file changed

+98
-3
lines changed

1 file changed

+98
-3
lines changed

justfile

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ list-workflows:
6767

6868
# Test build-docs job locally with act
6969
[group('CI/CD')]
70-
test-docs-build branch="main":
70+
test-docs-build branch=`git branch --show-current`:
7171
@echo "Testing docs build job locally (branch: {{branch}})..."
7272
@sops exec-env vars/shared.yaml 'act workflow_dispatch \
7373
-W .github/workflows/deploy-docs.yaml \
@@ -80,7 +80,7 @@ test-docs-build branch="main":
8080

8181
# Test full deploy-docs workflow locally with act
8282
[group('CI/CD')]
83-
test-docs-deploy branch="main":
83+
test-docs-deploy branch=`git branch --show-current`:
8484
@echo "Testing full docs deployment workflow locally (branch: {{branch}})..."
8585
@echo "Note: Cloudflare deployment may not work in local environment"
8686
@sops exec-env vars/shared.yaml 'act workflow_dispatch \
@@ -92,6 +92,101 @@ test-docs-deploy branch="main":
9292
--input debug_enabled=false \
9393
--input branch={{branch}}'
9494

95+
# Trigger docs build job remotely on GitHub (requires workflow on main)
96+
[group('CI/CD')]
97+
gh-docs-build branch=`git branch --show-current` debug="false":
98+
#!/usr/bin/env bash
99+
echo "Triggering docs build workflow on GitHub (branch: {{branch}}, debug: {{debug}})..."
100+
echo "Note: This requires deploy-docs.yaml to exist on the default branch"
101+
gh workflow run deploy-docs.yaml \
102+
--repo ${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)} \
103+
--ref "{{branch}}" \
104+
--field debug_enabled="{{debug}}" \
105+
--field branch="{{branch}}"
106+
echo "Check workflow status with: just gh-docs-status"
107+
108+
# View recent workflow runs status
109+
[group('CI/CD')]
110+
gh-workflow-status workflow="deploy-docs.yaml" branch=`git branch --show-current` limit="5":
111+
#!/usr/bin/env bash
112+
echo "Recent docs workflow runs:"
113+
gh run list \
114+
--workflow={{workflow}} \
115+
--branch={{branch}} \
116+
--limit={{limit}} \
117+
--repo ${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}
118+
119+
# Watch a specific docs workflow run
120+
[group('CI/CD')]
121+
gh-docs-watch run_id="":
122+
#!/usr/bin/env bash
123+
if [ -z "{{run_id}}" ]; then
124+
echo "Getting latest workflow run..."
125+
RUN_ID=$(gh run list --workflow=deploy-docs.yaml --limit=1 --json databaseId -q '.[0].databaseId' \
126+
--repo ${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)})
127+
echo "Watching run: $RUN_ID"
128+
gh run watch $RUN_ID --repo ${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}
129+
else
130+
gh run watch {{run_id}} --repo ${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}
131+
fi
132+
133+
# View logs for a specific docs workflow run
134+
[group('CI/CD')]
135+
gh-docs-logs run_id="" job="":
136+
#!/usr/bin/env bash
137+
REPO="${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}"
138+
if [ -z "{{run_id}}" ]; then
139+
echo "Getting latest workflow run..."
140+
RUN_ID=$(gh run list --workflow=deploy-docs.yaml --limit=1 --json databaseId -q '.[0].databaseId' --repo $REPO)
141+
else
142+
RUN_ID="{{run_id}}"
143+
fi
144+
145+
if [ -z "{{job}}" ]; then
146+
echo "Available jobs in run $RUN_ID:"
147+
gh run view $RUN_ID --repo $REPO --json jobs -q '.jobs[].name'
148+
echo ""
149+
echo "Viewing full run logs..."
150+
gh run view $RUN_ID --log --repo $REPO
151+
else
152+
echo "Viewing logs for job '{{job}}' in run $RUN_ID..."
153+
gh run view $RUN_ID --log --repo $REPO | grep -A 100 "{{job}}"
154+
fi
155+
156+
# Re-run a failed docs workflow
157+
[group('CI/CD')]
158+
gh-docs-rerun run_id="" failed_only="true":
159+
#!/usr/bin/env bash
160+
REPO="${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}"
161+
if [ -z "{{run_id}}" ]; then
162+
echo "Getting latest workflow run..."
163+
RUN_ID=$(gh run list --workflow=deploy-docs.yaml --limit=1 --json databaseId -q '.[0].databaseId' --repo $REPO)
164+
else
165+
RUN_ID="{{run_id}}"
166+
fi
167+
168+
if [ "{{failed_only}}" = "true" ]; then
169+
echo "Re-running failed jobs in run $RUN_ID..."
170+
gh run rerun --failed $RUN_ID --repo $REPO
171+
else
172+
echo "Re-running all jobs in run $RUN_ID..."
173+
gh run rerun $RUN_ID --repo $REPO
174+
fi
175+
176+
# Cancel a running docs workflow
177+
[group('CI/CD')]
178+
gh-docs-cancel run_id="":
179+
#!/usr/bin/env bash
180+
REPO="${GITHUB_REPOSITORY:-$(gh repo view --json nameWithOwner -q .nameWithOwner)}"
181+
if [ -z "{{run_id}}" ]; then
182+
echo "Getting latest workflow run..."
183+
RUN_ID=$(gh run list --workflow=deploy-docs.yaml --limit=1 --json databaseId -q '.[0].databaseId' --repo $REPO)
184+
echo "Canceling run: $RUN_ID"
185+
gh run cancel $RUN_ID --repo $REPO
186+
else
187+
gh run cancel {{run_id}} --repo $REPO
188+
fi
189+
95190
## Conda package
96191

97192
# Package commands (conda)
@@ -401,7 +496,7 @@ updatekeys:
401496
# Initialize new project from template
402497
[group('template')]
403498
template-init:
404-
echo "Use: nix --accept-flake-config run github:juspay/omnix -- init github:sciexp/python-nix-template -o new-python-project"
499+
echo "Use: nix --accept-flake-config run github:juspay/omnix/v1.3.0 -- init github:sciexp/python-nix-template -o new-python-project"
405500

406501
# Verify template functionality by creating and checking a test project
407502
[group('template')]

0 commit comments

Comments
 (0)