Skip to content

Test Firedrake release #4226

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 43 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
bd817f8
Begin process of preparing Firedrake release
connorjward Apr 3, 2025
76c4f58
Merge remote-tracking branch 'origin/master' into connorjward/firedra…
connorjward Apr 7, 2025
2642cec
Attempt tweaking workflow to use no build isolation
connorjward Apr 7, 2025
b5d3b46
fixup
connorjward Apr 7, 2025
44d9a06
Begin work on firedrake-dev-patch
connorjward Apr 8, 2025
b4d73b3
slepc4py location
connorjward Apr 8, 2025
e338dc8
Also patch requirements-build.txt
connorjward Apr 8, 2025
6fff6dd
Add transitive dep
connorjward Apr 8, 2025
c43a0e8
An idea, don't love it but might be the only way
connorjward Apr 8, 2025
309ef12
fixup?
connorjward Apr 8, 2025
3eec1f9
Working?
connorjward Apr 8, 2025
2a39b82
cleanup
connorjward Apr 8, 2025
40b49ce
Install transitive build deps
connorjward Apr 8, 2025
74f5a16
Fixup
connorjward Apr 9, 2025
bd679b5
fixup
connorjward Apr 9, 2025
791236c
fixup
connorjward Apr 9, 2025
8cc1763
add TODO RELEASE comments and check
connorjward Apr 9, 2025
0e5b150
fixup
connorjward Apr 9, 2025
c8209fc
fixup
connorjward Apr 9, 2025
fadff35
fixup
connorjward Apr 9, 2025
25ea942
Add publishing workflows
connorjward Apr 9, 2025
ebd66da
fixup
connorjward Apr 9, 2025
b45aec0
Some noodling and comments
connorjward Apr 9, 2025
4d790a8
Merge remote-tracking branch 'origin/master' into connorjward/firedra…
connorjward Apr 11, 2025
28224b5
Begin refactoring workflows
connorjward Apr 11, 2025
03076f2
Big refactor of workflows
connorjward Apr 11, 2025
f4603a8
fixup
connorjward Apr 11, 2025
0a32637
Tweaks
connorjward Apr 14, 2025
eeb96ea
fixup version
connorjward Apr 14, 2025
d2b56bc
Tweaks
connorjward Apr 14, 2025
d8132b4
Workflow cleanup
connorjward Apr 14, 2025
e28460b
Merge remote-tracking branch 'origin/master' into connorjward/firedra…
connorjward Apr 14, 2025
b6985c1
Updates
connorjward Apr 15, 2025
9bae98e
Zenodo noodling
connorjward Apr 15, 2025
cc5b9d7
Zenodo noodling, ideas solidifying
connorjward Apr 15, 2025
8998376
macos fixup
connorjward Apr 15, 2025
303f3e5
Zenodo unsaved
connorjward Apr 15, 2025
387f6b2
zenodo ready for testing
connorjward Apr 16, 2025
4695448
fixup
connorjward Apr 16, 2025
81fdfda
Small fixups
connorjward Apr 23, 2025
a9de762
Merge remote-tracking branch 'origin/master' into connorjward/firedra…
connorjward Apr 23, 2025
011d883
Remove 'TODO RELEASE' comments (for testing)
connorjward Apr 11, 2025
d350106
fixup
connorjward Apr 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
537 changes: 537 additions & 0 deletions .github/workflows/core.yml

Large diffs are not rendered by default.

16 changes: 1 addition & 15 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@ on:
workflow_call:
inputs:
tag:
description: 'Optional tag (defaults to `latest`)'
required: false
default: 'latest'
type: string
status:
description: 'Firedrake test status'
required: true
description: Docker image tag
type: string
secrets:
# Docker login information
Expand All @@ -22,8 +16,6 @@ on:
jobs:
# Firedrake container (just Firedrake)
docker_build_vanilla:
# Only run if Firedrake tests pass
if: inputs.status == 'success'
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -58,8 +50,6 @@ jobs:

# # Firedrake container (Firedrake and friends)
docker_build_firedrake:
# Only run if "Build Firedrake" succeeds
if: inputs.status == 'success'
needs: docker_merge_vanilla
uses: ./.github/workflows/docker_build.yml
# Only build the 'firedrake' container for 'linux/amd64' because
Expand All @@ -84,8 +74,6 @@ jobs:

# # Firedrake container with TeX
docker_build_docdeps:
# Only run if "Build Firedrake" succeeds
if: inputs.status == 'success'
needs: docker_merge_vanilla
uses: ./.github/workflows/docker_build.yml
with:
Expand All @@ -106,8 +94,6 @@ jobs:

# # Firedrake container with Jupyter notebooks
docker_build_jupyter:
# Only run if "Build Firedrake" succeeds
if: inputs.status == 'success'
needs: docker_merge_firedrake
uses: ./.github/workflows/docker_build.yml
with:
Expand Down
20 changes: 11 additions & 9 deletions .github/workflows/docker_merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@ on:
workflow_call:
inputs:
target:
description: 'Target docker image name to upload to'
description: Docker image name
required: true
type: string
tag:
description: 'Optional tag (defaults to `latest`)'
required: false
default: 'latest'
description: Docker image tag
required: true
type: string
secrets:
# Docker login information
Expand All @@ -28,8 +27,7 @@ jobs:
steps:
- name: Pre-cleanup
if: always()
run: |
rm -rf ${{ runner.temp }}/digests
run: rm -rf ${{ runner.temp }}/digests

- name: Download digests
uses: actions/download-artifact@v4
Expand All @@ -47,16 +45,20 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# NOTE: This action pushes a new image with the given tag but also updates
# the 'latest' tag.
- name: Merge and push the per-platform images
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create -t firedrakeproject/${{ inputs.target }}:${{ inputs.tag }} $(printf 'firedrakeproject/${{ inputs.target }}@sha256:%s ' *)
docker buildx imagetools create \
-t firedrakeproject/${{ inputs.target }}:${{ inputs.tag }} \
-t firedrakeproject/${{ inputs.target }}:latest \
$(printf 'firedrakeproject/${{ inputs.target }}@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect firedrakeproject/${{ inputs.target }}:${{ inputs.tag }}

- name: Post-cleanup
if: always()
run: |
rm -rf ${{ runner.temp }}/digests
run: rm -rf ${{ runner.temp }}/digests
13 changes: 13 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Test pull request

on:
pull_request:

jobs:
test:
uses: ./.github/workflows/core.yml
with:
target_branch: ${{ github.base_ref }}
# Only run macOS tests if the PR is labelled 'macOS'
test_macos: ${{ contains(github.event.pull_request.labels.*.name, 'macOS') }}
secrets: inherit
16 changes: 16 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Deploy after push

on:
push:
branches:
- master
- release

jobs:
test:
uses: ./.github/workflows/core.yml
with:
target_branch: ${{ github.ref_name }}
test_macos: true
deploy_website: true
secrets: inherit
23 changes: 23 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Publish release

on:
release:
types: [published]

jobs:
deploy:
if: ! startsWith( github.ref_name, 'Zenodo' )
uses: ./.github/workflows/core.yml
with:
target_branch: release
run_tests: false
upload_pypi: true
secrets: inherit

docker:
if: ! startsWith( github.ref_name, 'Zenodo' )
name: Build Docker containers
uses: ./.github/workflows/docker.yml
with:
tag: ${{ github.ref }}
secrets: inherit
Loading
Loading