-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
89 lines (71 loc) · 2.96 KB
/
justfile
File metadata and controls
89 lines (71 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@_default:
just --list --unsorted
@_checks: check-spelling check-urls check-commits
# Test Seedcase and non-Seedcase projects
@_tests: (test "true" "netlify") (test "false" "netlify") (test "true" "gh-pages") (test "false" "gh-pages")
@_builds: build-contributors build-website build-readme
# Run all build-related recipes in the justfile
run-all: update-quarto-theme update-template _checks format-md _tests _builds
# Install the pre-commit hooks
install-precommit:
# Install pre-commit hooks
uvx pre-commit install
# Run pre-commit hooks on all files
uvx pre-commit run --all-files
# Update versions of pre-commit hooks
uvx pre-commit autoupdate
# Update the Quarto seedcase-theme extension
update-quarto-theme:
# Add theme if it doesn't exist, update if it does
quarto update seedcase-project/seedcase-theme --no-prompt
# Update files in the template from the copier parent folder
update-template:
cp CODE_OF_CONDUCT.md .pre-commit-config.yaml .typos.toml .editorconfig .rumdl.toml template/
mkdir -p template/tools
cp tools/get-contributors.sh template/tools/
cp .github/pull_request_template.md template/.github/
cp .github/workflows/dependency-review.yml template/.github/workflows/
# Check the commit messages on the current branch that are not on the main branch
check-commits:
#!/usr/bin/env bash
branch_name=$(git rev-parse --abbrev-ref HEAD)
number_of_commits=$(git rev-list --count HEAD ^main)
if [[ ${branch_name} != "main" && ${number_of_commits} -gt 0 ]]
then
# If issue happens, try `uv tool update-shell`
uvx --from commitizen cz check --rev-range main..HEAD
else
echo "On 'main' or current branch doesn't have any commits."
fi
# Install lychee from https://lychee.cli.rs/guides/getting-started/
# Check that URLs work
check-urls:
lychee . \
--verbose \
--extensions md,qmd,jinja \
--exclude-path "_badges.qmd"
# Check for spelling errors in files
check-spelling:
uvx typos
# Format Markdown files
format-md:
uvx rumdl fmt --silent
# Test that a Python package can be created from the template, with parameters for: `is_seedcase_project` (true or false) and `hosting_provider` (either "gh-pages" or "netlify")
test is_seedcase_project="true" hosting_provider="netlify":
sh ./test-template.sh {{ is_seedcase_project }} {{ hosting_provider }}
# Test template with the manual questionnaire answers
test-manual:
mkdir -p _temp/manual
uvx copier copy --trust -r HEAD . _temp/manual/test-template
# Clean up any leftover and temporary build files
cleanup:
rm -rf _temp
# Build the website using Quarto
build-website:
uvx --from quarto quarto render
# Re-build the README file from the Quarto version
build-readme:
uvx --from quarto quarto render README.qmd --to gfm
# Generate a Quarto include file with the contributors
build-contributors:
sh ./tools/get-contributors.sh seedcase-project/template-python-project > docs/includes/_contributors.qmd