Skip to content

Commit

Permalink
updated workflows (#590)
Browse files Browse the repository at this point in the history
* updated workflows

* fix syntax
  • Loading branch information
JonasIsensee authored Sep 1, 2024
1 parent 8b6dbbc commit de50c57
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 58 deletions.
1 change: 1 addition & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
target-branch: "dev"
21 changes: 21 additions & 0 deletions .github/workflows/Docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Documenter
on:
push:
branches: [main, master, dev]
tags: [v*]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
Documenter:
permissions:
contents: write
statuses: write
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15 changes: 8 additions & 7 deletions .github/workflows/Downgrade.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
name: Downgrade
on:
pull_request:
branches:
- master
branches: [main, master, dev]
paths-ignore:
- 'docs/**'
push:
branches:
- master
branches: [main, master, dev]
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
Expand All @@ -18,11 +19,11 @@ jobs:
version: ['1']
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v1
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
- uses: cjdoris/julia-downgrade-compat-action@v1
- uses: julia-actions/julia-downgrade-compat@v1
with:
skip: Pkg,TOML,Mmap
skip: Pkg, TOML, Mmap
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
4 changes: 1 addition & 3 deletions .github/workflows/Invalidations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Invalidations

on:
pull_request:
branches: [main, master, dev]

concurrency:
# Skip intermediate builds: always.
Expand All @@ -11,9 +12,6 @@ concurrency:

jobs:
evaluate:
# Only run on PRs to the default branch.
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
if: github.base_ref == github.event.repository.default_branch
runs-on: ubuntu-latest
steps:
- uses: julia-actions/setup-julia@v2
Expand Down
56 changes: 8 additions & 48 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,28 @@
name: CI
on:
pull_request:
branches:
- master
- dev
branches: [main, master, dev]
push:
branches:
- master
- dev
branches: [main, master, dev]
tags: '*'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Tests, Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- '1.6'
- '1'
- 'nightly'
os: [ubuntu-latest, windows-latest, macos-latest] # adjust according to need, e.g. os: [ubuntu-latest] if testing only on linux
arch:
- x64
version: ['min', '1', 'nightly']
os: [ubuntu-latest, windows-latest, macos-latest]
arch: [x64]
include:
- os: ubuntu-latest
version: '1'
arch: x86
steps:
# Cancel ongoing CI test runs if pushing to branch again before the previous tests
# have finished
- name: Cancel ongoing test runs for previous commits
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}

# Do tests
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
Expand All @@ -49,31 +37,3 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: lcov.info
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
# Cancel ongoing documentation build if pushing to branch again before the previous
# build is finished.
- name: Cancel ongoing documentation builds for previous commits
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}

# Build docs
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- name: Instantiate and install dependencies
run: |
julia --project=docs -e '
using Pkg
Pkg.develop(PackageSpec(path=pwd()))
Pkg.instantiate()'
- name: Generate documentation and deploy
env: # needed for pushing to gh-pages branch
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key
run:
julia --project=docs docs/make.jl
71 changes: 71 additions & 0 deletions .github/workflows/stale_preview_removal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Doc Preview Cleanup

on:
schedule:
- cron: "0 0 * * *"

jobs:
doc-preview-cleanup:
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v4
with:
ref: gh-pages
- uses: julia-actions/setup-julia@v2
- name: Check for stale PR previews
shell: julia {0}
run: |
using Pkg
pkg"activate --temp"
pkg"add HTTP JSON3"
using HTTP
using JSON3
using Dates
repo = ENV["GITHUB_REPOSITORY"]
retention_days = 14
pr_previews = map(filter(startswith("PR"), readdir("previews"))) do dir
parse(Int, match(r"PR(\d*)", dir)[1])
end
function all_prs()
query_prs(page) = JSON3.read(HTTP.get("https://api.github.com/repos/$repo/pulls?per_page=100;page=$(page)").body)
prs = []
page = 1
while true
page_prs = query_prs(page)
isempty(page_prs) && break
append!(prs, page_prs)
page += 1
end
return prs
end
prs = all_prs()
open_within_threshold = map(x -> x.number, filter(prs) do pr
time = DateTime(pr.updated_at[1:19], ISODateTimeFormat)
return pr.state == "open" && Dates.days(now() - time) <= retention_days
end)
stale_previews = setdiff(pr_previews, open_within_threshold)
@info "Found $(length(stale_previews)) stale previews"
if isempty(stale_previews)
@info "No stale previews"
exit(1)
end
for pr in stale_previews
path = joinpath("previews", "PR$pr")
@info "Removing $path"
run(`git rm -rf $path`)
end
- name: Push changes
run: |
git config user.name "Documenter.jl"
git config user.email "[email protected]"
git commit -m "delete preview"
git branch gh-pages-new $(echo "delete history" | git commit-tree HEAD^{tree})
git push --force origin gh-pages-new:gh-pages

0 comments on commit de50c57

Please sign in to comment.