Add GitHub permissions to workflows #176
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test generated package | |
on: | |
push: | |
branches: | |
- main | |
tags: ["*"] | |
pull_request: | |
branches: | |
- main | |
paths: | |
- "src/**" | |
- "test/**" | |
- "*.toml" | |
- "copier.yml" | |
- "template/**" | |
- ".github/workflows/TestGeneratedPkg.yml" | |
types: [opened, synchronize, reopened] | |
workflow_dispatch: | |
jobs: | |
test-generated-pkg: | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "lts" | |
- "1" | |
os: | |
- ubuntu-latest | |
arch: | |
- x64 | |
allow_failure: [false] | |
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: read | |
continue-on-error: ${{ matrix.allow_failure }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: julia-actions/setup-julia@v2 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- name: Use Julia cache | |
uses: julia-actions/cache@v2 | |
- name: Build the package | |
uses: julia-actions/julia-buildpkg@v1 | |
- name: Install JuliaFormatter.jl | |
run: julia -e 'using Pkg; pkg"add JuliaFormatter"' | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
cache: "pip" | |
- name: Cache pre-commit | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pre-commit | |
key: ${{ runner.os }}-pre-commit-${{ hashFiles('**/.pre-commit-config.yaml') }} | |
- name: Install pre-commit | |
run: pip install pre-commit | |
# Actual tests | |
- name: Create a package using the template | |
run: | | |
julia --project=. --eval ' | |
using BestieTemplate, UUIDs; | |
data = Dict( | |
"PackageName" => "Guldasta", | |
"PackageUUID" => string(UUIDs.uuid4()), | |
"PackageOwner" => "Bagicha", | |
"AuthorName" => "Mali", | |
"AuthorEmail" => "[email protected]" | |
); | |
BestieTemplate.generate("tmp/Guldasta.jl", data; defaults = true, quiet = true); | |
' | |
- name: Run the tests in the generated package | |
run: | | |
julia --project=tmp/Guldasta.jl --eval 'using Pkg; Pkg.test()' | |
- name: Build the docs of the generated package | |
run: | | |
julia --project=tmp/Guldasta.jl/docs --eval 'using Pkg; pkg"dev tmp/Guldasta.jl"' \ | |
-L tmp/Guldasta.jl/docs/make.jl | |
- name: Check that the docs wre properly generated | |
run: | | |
./.github/scripts/check-docs.bash tmp/Guldasta.jl | |
- name: Check that running pre-commit will fix its own issues | |
shell: bash {0} # The default shell uses -e which checks intermediary failures | |
run: | | |
cd tmp/Guldasta.jl | |
git config --global user.email "[email protected]" | |
git config --global user.name "GitHub action" | |
git init | |
git add . | |
git commit -m "First commit" | |
SKIP=no-commit-to-branch pre-commit run -a # Should fail | |
SKIP=no-commit-to-branch pre-commit run -a # Should not |