Skip to content

Commit 98fc9d6

Browse files
chore: align .github structure with Piccolo conventions
Bring HBJ's `.github/` up to parity with the Piccolo.jl-shaped layout that the rest of the org uses. Files are copied verbatim from Piccolo unless noted. Workflows --------- - **CI.yml**: replace the precompile-only smoke check with the canonical matrix test workflow — runs `julia-runtest`, processes coverage, and uploads to codecov on Julia 1.10/1.11/1.12 + Linux x64. Adds `paths-ignore: ['docs/**', '*.md']` so doc-only PRs don't burn CI minutes once docs/ exists. - **Formatter.yml** *(new)*: JuliaFormatter check on PR/push, with workflow_dispatch escape hatch to autoformat + commit. - **nightly.yml** *(new)*: daily Julia 'pre' install check (matches Piccolo — install-only, not test run; intentionally lighter than DTO's nightly). - **tasksmd-sync.yml** *(new)*: TASKS.md ↔ org GitHub Project sync. Filtered on `paths: ['TASKS.md']` so it's a no-op until/unless HBJ adopts the TASKS.md convention. - **TagBot.yml**: cosmetic — unquote `lookback: 3` to match Piccolo exactly (functionally identical, both parse as string). dependabot.yml -------------- Add the `julia` ecosystem alongside `github-actions` so dependabot opens compat-bump PRs against Project.toml weekly. Comments restored to Piccolo's verbose form. CI.yml previously only checked that the package precompiles and loads — so the test suite was never actually run on CI. This commit fixes that gap; downstream branches (e.g. the alloc-analyzer PR #8) will rebase on top of this to pick up the real test runs.
1 parent 768bd6a commit 98fc9d6

6 files changed

Lines changed: 149 additions & 9 deletions

File tree

.github/dependabot.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
1-
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
26
version: 2
37
updates:
48
- package-ecosystem: "github-actions"
9+
# Workflow files stored in the default location of `.github/workflows`
10+
# You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.
511
directory: "/"
612
schedule:
713
interval: "weekly"
14+
15+
- package-ecosystem: "julia"
16+
directory: "/"
17+
schedule:
18+
interval: "weekly"
19+

.github/workflows/CI.yml

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,57 @@
11
name: CI
22
on:
3+
pull_request:
4+
paths-ignore:
5+
- 'docs/**'
6+
- '*.md'
37
push:
48
branches:
59
- main
610
tags: ['*']
7-
pull_request:
811
concurrency:
12+
# Skip intermediate builds: always.
13+
# Cancel intermediate builds: only if it is a pull request build.
914
group: ${{ github.workflow }}-${{ github.ref }}
1015
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
1116
jobs:
12-
precompile:
13-
name: Julia ${{ matrix.version }}
14-
runs-on: ubuntu-latest
17+
test:
18+
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
19+
runs-on: ${{ matrix.os }}
1520
strategy:
1621
fail-fast: false
1722
matrix:
1823
version:
24+
- '1.12'
1925
- '1.10'
2026
- '1.11'
21-
- '1.12'
27+
os:
28+
- ubuntu-latest
29+
arch:
30+
- x64
31+
env:
32+
PYTHON: ""
2233
steps:
2334
- uses: actions/checkout@v6
2435
- uses: julia-actions/setup-julia@v3
2536
with:
2637
version: ${{ matrix.version }}
38+
arch: ${{ matrix.arch }}
2739
- uses: julia-actions/cache@v3
40+
# - uses: actions/cache@v1
41+
# env:
42+
# cache-name: cache-artifacts
43+
# with:
44+
# path: ~/.julia/artifacts
45+
# key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
46+
# restore-keys: |
47+
# ${{ runner.os }}-test-${{ env.cache-name }}-
48+
# ${{ runner.os }}-test-
49+
# ${{ runner.os }}-
2850
- uses: julia-actions/julia-buildpkg@v1
29-
- name: Load package
30-
run: julia --project=. -e 'using HarmoniqsBenchmarks'
51+
- uses: julia-actions/julia-runtest@v1
52+
- uses: julia-actions/julia-processcoverage@v1
53+
- uses: codecov/codecov-action@v6
54+
with:
55+
files: lcov.info
56+
token: ${{ secrets.CODECOV_TOKEN }}
57+
fail_ci_if_error: false

.github/workflows/Formatter.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Formatter
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
jobs:
9+
julia-format:
10+
name: Formatter
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: julia-actions/setup-julia@latest
14+
- uses: actions/checkout@v6
15+
with:
16+
token: ${{ secrets.GITHUB_TOKEN }}
17+
- name: Install JuliaFormatter and format
18+
run: |
19+
julia --color=yes -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter"))'
20+
julia --color=yes -e 'using JuliaFormatter; format(".", verbose=true)'
21+
- name: Commit formatted code
22+
if: github.event_name == 'workflow_dispatch'
23+
run: |
24+
git config user.name "github-actions[bot]"
25+
git config user.email "github-actions[bot]@users.noreply.github.com"
26+
git diff --quiet && exit 0
27+
git add -A
28+
git commit -m "chore: autoformat"
29+
git push
30+
- name: Format check
31+
if: github.event_name != 'workflow_dispatch'
32+
run: |
33+
julia --color=yes -e '
34+
out = Cmd(`git diff --name-only`) |> read |> String
35+
if out == ""
36+
exit(0)
37+
else
38+
@error "Some files have not been formatted !!!"
39+
write(stdout, out)
40+
exit(1)
41+
end'

.github/workflows/TagBot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
workflow_dispatch:
77
inputs:
88
lookback:
9-
default: "3"
9+
default: 3
1010
permissions:
1111
actions: read
1212
checks: read

.github/workflows/nightly.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Nightly
2+
on:
3+
schedule:
4+
- cron: '00 00 * * *'
5+
workflow_dispatch:
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
9+
jobs:
10+
test:
11+
name: Julia nightly - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
12+
runs-on: ${{ matrix.os }}
13+
timeout-minutes: 60
14+
permissions:
15+
actions: write
16+
contents: read
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
version:
21+
- 'pre'
22+
os:
23+
- ubuntu-latest
24+
arch:
25+
- x64
26+
steps:
27+
- uses: actions/checkout@v6
28+
- uses: julia-actions/setup-julia@v3
29+
with:
30+
version: ${{ matrix.version }}
31+
arch: ${{ matrix.arch }}
32+
- uses: julia-actions/cache@v3
33+
- name: Check installation
34+
uses: julia-actions/julia-buildpkg@v1
35+

.github/workflows/tasksmd-sync.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Sync TASKS.md
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths: ['TASKS.md']
7+
pull_request:
8+
paths: ['TASKS.md']
9+
10+
jobs:
11+
sync-tasks:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v6
15+
16+
- uses: harmoniqs/tasksmd-sync@main
17+
with:
18+
tasks-file: TASKS.md
19+
org: harmoniqs
20+
project-number: '2'
21+
repo-label: ${{ github.event.repository.name }}
22+
github-token: ${{ secrets.PROJECTS_TOKEN }}
23+
dry-run: ${{ github.event_name == 'pull_request' }}
24+
writeback-pr: 'true'
25+
repo: ${{ github.repository }}

0 commit comments

Comments
 (0)