Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
b8d3d9c
chore: Minor updates to web dashboard and config
lbeckman314 Feb 24, 2026
c45607a
feat: Hide env vars by default in the web dashboard
lbeckman314 Feb 24, 2026
dce40b9
fix: update config merge to preserve 'false/empty' values
lbeckman314 Feb 26, 2026
64e1172
fix: Update configs and release workflows
lbeckman314 Feb 26, 2026
2f1397b
fix: update Config merge to support empty + default values
lbeckman314 Feb 26, 2026
fd6e194
fix: GoReleaser Branch env var
lbeckman314 Feb 26, 2026
91d14d8
fix: Add support for default `server run` command
lbeckman314 Feb 26, 2026
6141fb2
fix: Update default config merge
lbeckman314 Feb 26, 2026
d0a5457
feat: Update config outputs to redact sensitive fields
lbeckman314 Feb 26, 2026
4e5dcc3
Update config/safe.go
lbeckman314 Feb 26, 2026
2c87117
chore: Safe Config update (return empty string for empty fields)
lbeckman314 Feb 26, 2026
645a96f
chore: Add nil checks to Safe Config
lbeckman314 Feb 26, 2026
ec5deb2
chore: Update Safe Config
lbeckman314 Feb 26, 2026
bb26e4d
Merge pull request #1332 from ohsu-comp-bio/fix/enable-config-output
lbeckman314 Feb 26, 2026
6ce4b3a
fix: Update Postgres `404` task behavior
lbeckman314 Feb 27, 2026
b2016a5
fix: Logging config field names updated to use current format (CamelC…
lbeckman314 Feb 27, 2026
2a93dae
fix: Return `400` instead of `500` when canceling completed tasks
lbeckman314 Feb 27, 2026
5d87aef
Merge pull request #1334 from ohsu-comp-bio/fix/cancel-code
lbeckman314 Mar 2, 2026
a8ab034
fix: cancel task: Replace `400` error with `200` + message for user
lbeckman314 Mar 2, 2026
64bdfd7
feat: Add custom message handler for custom client messages
lbeckman314 Mar 2, 2026
3e70319
chore: Add suggestions from review (backwards compatibility)
lbeckman314 Mar 2, 2026
9c0258b
Merge pull request #1336 from ohsu-comp-bio/fix/cancel-code
lbeckman314 Mar 2, 2026
b463192
chore: Add current limitations message for GCP Batch support
lbeckman314 Mar 3, 2026
92ffff5
feat: Set resource limits + add timeout to resource creation
lbeckman314 Mar 4, 2026
ab9219f
feat: Update dependabot.yaml
lbeckman314 Mar 6, 2026
139e5a8
build(deps): bump the dependabot group across 1 directory with 7 upda…
dependabot[bot] Mar 6, 2026
325e938
build(deps): bump the npm-deps group in /webdash with 4 updates (#1341)
dependabot[bot] Mar 6, 2026
07ff1e2
feat: port OVH/K8s improvements from main to develop
geertvandeweyer Mar 10, 2026
2fa41e0
build: add build-and-push.sh for develop-branch multiarch image
geertvandeweyer Mar 10, 2026
aef16a8
build: support DOCKERHUB_USER/PASS env vars for non-interactive Docke…
geertvandeweyer Mar 10, 2026
b10877f
fix(kubernetes): skip per-task SA/Role/RoleBinding when templates not…
geertvandeweyer Mar 10, 2026
056eb21
feat: Move install.sh to website/static for easier URL (#1346)
lbeckman314 Mar 10, 2026
0c6f67a
fix(kubernetes): make GenericS3 config optional for PV/PVC creation
geertvandeweyer Mar 10, 2026
70cc2bc
Revert "fix(kubernetes): make GenericS3 config optional for PV/PVC cr…
geertvandeweyer Mar 11, 2026
55efca5
fix(kubernetes): make GenericS3 config optional for PV/PVC creation
geertvandeweyer Mar 11, 2026
4e06ae9
fix(kubernetes): make per-task ConfigMap creation optional via Config…
geertvandeweyer Mar 11, 2026
c590523
fix(kubernetes): use text/template instead of html/template for YAML …
geertvandeweyer Mar 11, 2026
abb4cf3
fix: Update default exit code to 1
lbeckman314 Mar 11, 2026
4115f4f
feature: Validate + save K8s/task resources, return `400` if > limits
lbeckman314 Mar 12, 2026
b8fafca
fix: Docker image steps in documentation + limit `latest` tag to vali…
lbeckman314 Mar 13, 2026
3558c34
hotfix: Correct install script link in download page
lbeckman314 Mar 13, 2026
e23c705
Docs/docker fix (#1352)
lbeckman314 Mar 16, 2026
f35d647
fix: Docker tag
lbeckman314 Mar 16, 2026
88b2e28
fix: `latest` Docker tag
lbeckman314 Mar 16, 2026
888713f
fix/set TTL for finished tasks if missing, to prevent piling of compl…
geertvandeweyer Mar 18, 2026
16e0f45
tests: merge unit tests into kubernetes_test.go
geertvandeweyer Mar 18, 2026
8d907ef
feat: Add initial resource timeout limit to K8s backend
lbeckman314 Mar 18, 2026
724c1c7
fix: Sanitize plugin response config before logging
lbeckman314 Mar 19, 2026
eac404d
fix: Add NodeSelector + Tolerations to Kubernetes Executor
lbeckman314 Mar 19, 2026
c4f253f
remove accidentally committed build-and-push.sh
geertvandeweyer Mar 19, 2026
5b95fa0
refactor(worker): replace Readonly-as-classifier with InputVolumes field
geertvandeweyer Mar 19, 2026
c0ed827
fix build
paulineribeyre Mar 20, 2026
8430f96
State transition validation: allow retry
paulineribeyre Mar 20, 2026
a026c63
feat: Support nil tags in TES tasks (via custom JSON marshaler)
lbeckman314 Mar 24, 2026
2afbf70
Apply suggestions from code review
lbeckman314 Mar 24, 2026
6bb9438
tests: Add tests for nil tags
lbeckman314 Mar 24, 2026
a9b3097
docs: Update GCP Batch docs on website
lbeckman314 Mar 24, 2026
4aa5757
ignore 'jobs.batch <job name> already exists'
paulineribeyre Mar 24, 2026
a4689f7
fix: Add environment variables to Kubernetes executor
lbeckman314 Mar 25, 2026
386e6d8
fix: Update quote handing in command
lbeckman314 Mar 25, 2026
ace4fba
debug: Add debug logs to Resource Cleanup
lbeckman314 Mar 25, 2026
ee34c27
chore: Clean up npm files
lbeckman314 Mar 26, 2026
0437144
build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 (#1355)
dependabot[bot] Mar 26, 2026
43fea28
build(deps): bump flatted from 3.2.7 to 3.4.2 in /webdash (#1358)
dependabot[bot] Mar 26, 2026
fb99904
build(deps): bump react-router-dom in /webdash in the npm-deps group …
dependabot[bot] Mar 26, 2026
40cfc44
build(deps): bump yaml in /webdash (#1362)
dependabot[bot] Mar 26, 2026
8a85e55
build(deps): bump picomatch from 2.3.1 to 2.3.2 in /webdash (#1364)
dependabot[bot] Mar 26, 2026
6a4c57b
build(deps): bump the dependabot group across 1 directory with 15 upd…
dependabot[bot] Mar 26, 2026
c7a8b1f
fix: Re-enable unit tests
lbeckman314 Mar 26, 2026
802a775
build(deps): bump the npm_and_yarn group across 1 directory with 14 u…
dependabot[bot] Mar 26, 2026
7f453d8
build(deps): bump qs
dependabot[bot] Mar 26, 2026
f39e443
Merge pull request #1360 from ohsu-comp-bio/feat/support-nil-tags
lbeckman314 Mar 26, 2026
fd6ed41
Merge pull request #1367 from ohsu-comp-bio/dependabot/npm_and_yarn/w…
lbeckman314 Mar 26, 2026
a5b188b
build(deps): bump the dependabot group across 1 directory with 3 updates
dependabot[bot] Mar 27, 2026
7240fd8
Merge pull request #1369 from ohsu-comp-bio/dependabot/go_modules/dev…
lbeckman314 Mar 29, 2026
5f3c52a
build(deps): bump brace-expansion
dependabot[bot] Mar 29, 2026
ed2b19e
fix: Quote test updates
lbeckman314 Mar 30, 2026
a996682
fix waitForPodFinish infinite loop
paulineribeyre Mar 30, 2026
11ff1b9
worker does not fail if executor fails
paulineribeyre Mar 30, 2026
b628452
fix: Remove PV/PVC finalizers before deletion and clean up executor jobs
lbeckman314 Mar 30, 2026
6761513
fix: Use activeDeadlineSeconds to enforce K8s scheduling timeout
lbeckman314 Mar 30, 2026
27d8a98
fix: Resource cleanup
lbeckman314 Mar 30, 2026
8decac7
fix: Detect pod scheduling timeout in reconciler
lbeckman314 Mar 30, 2026
10af4c1
fix: Limit timeout only to scheduling (as opposed to job duration)
lbeckman314 Mar 30, 2026
7e29103
fix: Correct order ot K8s resource deletion
lbeckman314 Mar 31, 2026
254fc7a
worker does not fail if executor fails
paulineribeyre Mar 30, 2026
ead97be
clean up
paulineribeyre Mar 31, 2026
c2bceca
revert build change
paulineribeyre Apr 1, 2026
922b58d
fix: K8s Resource Cleanup
lbeckman314 Apr 1, 2026
ac7a770
do not allow retrying complete and canceled tasks
paulineribeyre Apr 1, 2026
fcd662a
Merge pull request #1373 from uc-cdis/support-retries
lbeckman314 Apr 1, 2026
4c85e9f
fix: Update quote handling
lbeckman314 Apr 1, 2026
79e7520
Merge remote-tracking branch 'origin/develop' into fix/resource-limits
lbeckman314 Apr 2, 2026
2a4809d
fix: Remove YamlQuote, add fixtures and stdout unit tests
lbeckman314 Apr 2, 2026
5cb3c2e
Merge branch 'fix/quotes' into fix/resource-limits
lbeckman314 Apr 2, 2026
2ed7cec
fix: Remove expected STDOUT from test fixture tasks
lbeckman314 Apr 2, 2026
7f2d43b
chore: Update test fixtures
lbeckman314 Apr 2, 2026
2c47a18
feat: Clean up orphaned K8s resources on startup and during reconcili…
lbeckman314 Apr 2, 2026
e659879
Merge commit '2c47a186' into fix/resource-limits
lbeckman314 Apr 2, 2026
7736e44
fix: Implement deletion of SA/Role/RoleBinding and orphan cleanup for…
lbeckman314 Apr 2, 2026
68b9508
fix: Add plugin response (`params` field) to safe/redacted config
lbeckman314 Apr 2, 2026
f4d62be
fix: Update Safe Config based on review comments
lbeckman314 Apr 2, 2026
7efc07a
chore: Remobve redundant code in Safe() and redact()
lbeckman314 Apr 2, 2026
80c206d
Merge commit '7736e44e' into fix/resource-limits
lbeckman314 Apr 2, 2026
a0a787c
fix: Resolve errors in K8s resource_test.go
lbeckman314 Apr 2, 2026
261184a
Merge pull request #1337 from ohsu-comp-bio/fix/resource-limits
lbeckman314 Apr 3, 2026
6ba249a
chore: Minor semantic change
lbeckman314 Apr 3, 2026
8a8faae
Merge pull request #1375 from ohsu-comp-bio/fix/config-safe
lbeckman314 Apr 3, 2026
ef5c430
Merge branch 'develop' into feat/k8s-ovh-improvements
lbeckman314 Apr 3, 2026
d0fdc09
feat: add initial TES Volume support to K8s (as emptyDir)
lbeckman314 Apr 3, 2026
fda69c8
Merge commit 'd0fdc092' into fix/tes-volumes-k8s
lbeckman314 Apr 3, 2026
bf25f76
build(deps): bump the dependabot group across 1 directory with 9 updates
dependabot[bot] Apr 3, 2026
cc5407f
build(deps): bump react-router-dom in /webdash in the npm-deps group
dependabot[bot] Apr 3, 2026
cbca288
Merge pull request #1378 from ohsu-comp-bio/dependabot/npm_and_yarn/w…
lbeckman314 Apr 7, 2026
8679587
Merge pull request #1377 from ohsu-comp-bio/dependabot/go_modules/dev…
lbeckman314 Apr 7, 2026
5b6a6b5
Merge pull request #1370 from ohsu-comp-bio/dependabot/npm_and_yarn/w…
lbeckman314 Apr 7, 2026
3bb283d
build(deps): bump lodash
dependabot[bot] Apr 7, 2026
ec3930c
Merge pull request #1379 from ohsu-comp-bio/dependabot/npm_and_yarn/w…
lbeckman314 Apr 7, 2026
6be8822
feat: Add resource cleanup for tasks in terminal states
lbeckman314 Apr 7, 2026
d2ac937
fix: Update TES Volume support
lbeckman314 Apr 8, 2026
6955025
Merge commit 'd2ac9371' into fix/tes-volumes-k8s
lbeckman314 Apr 8, 2026
cd83e67
Merge pull request #1376 from calypr/fix/tes-volumes-k8s
lbeckman314 Apr 8, 2026
9644ccd
build(deps): bump the npm-deps group in /webdash with 2 updates
dependabot[bot] Apr 8, 2026
ae40325
build(deps): bump the dependabot group across 1 directory with 9 updates
dependabot[bot] Apr 10, 2026
791cd1b
chore: Add feedback from PR
lbeckman314 Apr 10, 2026
8d4544d
Merge branch 'develop' into fix/resource-clean
lbeckman314 Apr 10, 2026
d2de2c8
Merge pull request #1380 from calypr/fix/resource-clean
lbeckman314 Apr 10, 2026
1c9c157
chore: Remove debug print statements
lbeckman314 Apr 8, 2026
2c6dbf1
hotfix: Update Docker repo in GitHub Actions (docker.yaml)
lbeckman314 Apr 10, 2026
21bab32
fix: Update job.go
lbeckman314 Apr 10, 2026
548db4d
feat: Add graceful cancels to tasks (as opposed to Error)
lbeckman314 Apr 10, 2026
ca6797c
Merge pull request #1384 from calypr/dependabot/go_modules/develop/de…
lbeckman314 Apr 10, 2026
7e5d54d
Merge pull request #1382 from calypr/dependabot/npm_and_yarn/webdash/…
lbeckman314 Apr 10, 2026
054fbd3
chore: Remove redundant task cancel code
lbeckman314 Apr 11, 2026
0dc81f0
feat: Update resource clean on task cancel
lbeckman314 Apr 11, 2026
1fadc3d
Merge pull request #1385 from calypr/feat/graceful-cancel
lbeckman314 Apr 11, 2026
eab5842
build(deps): bump follow-redirects
dependabot[bot] Apr 14, 2026
8dc209f
build(deps): bump react-router-dom in /webdash in the npm-deps group
dependabot[bot] Apr 14, 2026
104b56d
hotfix: Revert ConfigMap creation update
lbeckman314 Apr 15, 2026
fe36609
build(deps): bump the dependabot group across 1 directory with 10 upd…
dependabot[bot] Apr 16, 2026
b2cae45
Merge pull request #1386 from calypr/dependabot/npm_and_yarn/webdash/…
lbeckman314 Apr 16, 2026
3ffaaf4
Merge pull request #1388 from calypr/dependabot/npm_and_yarn/webdash/…
lbeckman314 Apr 16, 2026
148ad78
Merge pull request #1390 from calypr/dependabot/go_modules/develop/de…
lbeckman314 Apr 16, 2026
92edb9e
fix: Skip deletion of ServiceAccounts still in use
lbeckman314 Apr 17, 2026
dc02e7b
feat: Move orphaned resource cleanup to backend startup
lbeckman314 Apr 21, 2026
0b5bd70
hotfix: Revert ConfigMap creation update
lbeckman314 Apr 15, 2026
01796d6
fix: Add context to resource creation in K8s backend
lbeckman314 Apr 22, 2026
597c86f
Merge branch 'develop' into feat/k8s-ovh-improvements
lbeckman314 Apr 22, 2026
9665964
fix: Skip ServiceAccount deletion if in use by other pods
lbeckman314 Apr 22, 2026
2341f5e
chore: Delete dependabot.yaml (deps) in favor of security updates
lbeckman314 Apr 24, 2026
317bc7c
fix: Unit tests + linting (#1398)
lbeckman314 Apr 24, 2026
39b024b
Merge branch 'develop' into feat/k8s-ovh-improvements
lbeckman314 Apr 24, 2026
60a91c9
chore: Delete dependabot.yaml (deps) in favor of security updates
lbeckman314 Apr 24, 2026
0e729ba
fix: Unit tests + linting (#1398)
lbeckman314 Apr 24, 2026
b663ea7
fix: Minor linting errors
lbeckman314 Apr 24, 2026
bf7c0d1
Merge pull request #1357 from geertvandeweyer/feat/k8s-ovh-improvements
lbeckman314 Apr 24, 2026
818a6a5
Merge branch 'feat/k8s-ovh-improvements' into develop
lbeckman314 Apr 24, 2026
5adeac1
fix: Update ConfigMap template and related code
lbeckman314 Apr 24, 2026
0db42a3
docs: Add Go Tests badge to README.md
lbeckman314 Apr 25, 2026
233dff1
chore: Remove branch restrictions for compliance test workflow
lbeckman314 Apr 25, 2026
3855fca
debug: GitHub Actions
lbeckman314 Apr 25, 2026
89fff2c
fix: Compliance tests
lbeckman314 Apr 25, 2026
3e87a17
debug: GitHub Actions
lbeckman314 Apr 25, 2026
4fa2f27
debug: GitHub Actions
lbeckman314 Apr 25, 2026
e68020f
debug: GitHub Actions
lbeckman314 Apr 25, 2026
7f5a7e5
debug: GitHub Actions
lbeckman314 Apr 25, 2026
6edd64e
debug: GitHub Actions
lbeckman314 Apr 25, 2026
b09cf3f
debug: GA
lbeckman314 Apr 25, 2026
0619e46
debug: GA
lbeckman314 Apr 25, 2026
386a7c1
debug: GA
lbeckman314 Apr 25, 2026
1b84a76
debug: GA
lbeckman314 Apr 27, 2026
1717d43
Merge pull request #1400 from calypr/fix/compliance-tests
lbeckman314 Apr 27, 2026
e84f99f
chore: Remove tmate session setup from k8s workflow
lbeckman314 Apr 27, 2026
f967150
fix: Skip ServiceAccount deletion if in use by other pods
lbeckman314 Apr 22, 2026
2021d2e
feat: update cleanOrphanedResources to non-blocking goroutine
lbeckman314 Apr 22, 2026
2bc183b
fix: Address PR review comments on ServiceAccount pod-in-use check
lbeckman314 Apr 27, 2026
f29adea
fix: Change Funnel homepage link to CALYPR
lbeckman314 Apr 28, 2026
6f07339
feat: Add owner references to task resources for automatic K8s GC cle…
lbeckman314 Apr 28, 2026
4a96b7a
fix: Add support for strong read-write consistency (S3 CSI Driver)
lbeckman314 Apr 29, 2026
10bde50
feat: Add support for exponential backoff calls to K8s
lbeckman314 Apr 29, 2026
a7fc01a
Merge pull request #1401 from calypr/fix/s3-output-files
lbeckman314 Apr 29, 2026
2bc8c53
fix: Add missing test fixture for quote handling
lbeckman314 Apr 29, 2026
775c24f
Merge branch 'fix/resource-clean' into fix/serviceaccount-deletion
lbeckman314 Apr 29, 2026
6946c9c
feat: Move cleanOrphanedResources to Helm Cron Job (background task)
lbeckman314 May 1, 2026
99b4bf6
Merge remote-tracking branch 'origin/develop' into fix/serviceaccount…
lbeckman314 May 1, 2026
5a567a2
fix: Update K8s tests
lbeckman314 May 1, 2026
206f414
fix: Add kubernetes package for managing Kubernetes resources
lbeckman314 May 2, 2026
957d200
fix: K8s unit test
lbeckman314 May 2, 2026
ec64e00
fix: Single element quote test (TODO: check if OK)
lbeckman314 May 4, 2026
5121290
Merge pull request #1392 from calypr/fix/serviceaccount-deletion
lbeckman314 May 4, 2026
1bddd1a
fix: Add Namespace label to PV cleanup
lbeckman314 May 4, 2026
b427ea1
fix: Update K8s resource cleanup errors to unblock CANCEL requests
lbeckman314 May 4, 2026
63759f5
feat: Add test reporting for Go unit tests
lbeckman314 May 6, 2026
25c3399
fix: Always output test report
lbeckman314 May 6, 2026
e909ade
fix: K8s Resource Test (ServiceAccount)
lbeckman314 May 6, 2026
cba1e80
Merge pull request #1403 from calypr/feat/add-test-reports
lbeckman314 May 6, 2026
187e765
fix: Revert K8s resource creation `if` check
lbeckman314 May 6, 2026
ec130c7
fix: K8s Backend tests
lbeckman314 May 6, 2026
4cddbed
fix: Revert K8s resource creation `if` check (#1405)
lbeckman314 May 6, 2026
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
12 changes: 0 additions & 12 deletions .github/dependabot.yaml

This file was deleted.

21 changes: 17 additions & 4 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
name: Funnel Build and Cache
name: Build Funnel

on:
workflow_call:
inputs:
cache:
type: boolean
default: true

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Cache Funnel binary
id: binary-cache
uses: actions/cache@v4
with:
path: funnel
key: funnel-binary-${{ hashFiles('**/*.go', 'go.mod', 'go.sum') }}

- name: Set up Go 1.x
uses: actions/setup-go@v5
if: steps.binary-cache.outputs.cache-hit != 'true'
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version-file: go.mod

- name: Build Funnel
if: steps.binary-cache.outputs.cache-hit != 'true'
run: make build

- name: Upload Funnel binary as artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: funnel
path: funnel
65 changes: 47 additions & 18 deletions .github/workflows/compliance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,7 @@
name: Compliance Test

on:
# Run on push to main/master/develop (e.g. after PR is merged)
push:
branches:
- main
- master

# Cancel redundant jobs (if a new job is triggered for the same workflow and ref)
concurrency:
Expand All @@ -38,41 +34,55 @@ jobs:
strategy:
fail-fast: false
matrix:
version: [1.0.0, 1.1.0]
db: ["boltdb", "mongodb"]
version:
- 1.0.0
- 1.1.0
# TODO: Re-enable postgres and s3 tests once we have these backends working in CI
db:
- local
# - postgres
# Temporary: Only test local compute backend until we bring up a K8s cluster in Github Actions
# compute: ["local", "kubernetes"]
compute: ["local"]
storage: ["local", "s3"]
compute:
- local
storage:
- local
# - s3
needs: build
runs-on: ubuntu-latest
steps:
# Required to access the 'tests/mongo.config.yml' file
# Required to access the tests config files (e.g. tests/postgres.config.yml)
# Perhaps uploading it as an artifact would be more efficient?
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: funnel

- name: Start Funnel server
run: |
touch config.yml

if [ ${{ matrix.db }} = "mongodb" ]; then
make start-mongodb
cat `pwd`/tests/mongo.config.yml >> config.yml
if [ ${{ matrix.db }} = "postgres" ]; then
make start-postgres
for i in $(seq 1 30); do
docker exec funnel-postgres-test pg_isready -U postgres && break
echo "Waiting for Postgres... ($i/30)"
sleep 1
[ $i -eq 30 ] && { echo "Postgres did not become ready in time"; exit 1; }
done
cat `pwd`/tests/postgres.config.yml >> config.yml
fi

if [ ${{ matrix.storage }} = "s3" ]; then
docker run -d -p 9000:9000 --name minio \
-e "MINIO_ROOT_USER=minioadmin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
-e "MINIO_ROOT_USER=example-key" \
-e "MINIO_ROOT_PASSWORD=example-secret" \
-v /tmp/data:/data \
-v /tmp/config:/root/.minio \
minio/minio server /data
cat `pwd`/tests/s3.config.yml >> config.yml
cat `pwd`/tests/minio-s3.config.yml >> config.yml
fi

if [ ${{ matrix.compute }} = "kubernetes" ]; then
Expand All @@ -82,6 +92,23 @@ jobs:

chmod +x funnel
./funnel server run --config `pwd`/config.yml &> funnel.logs &
echo $! > funnel.pid

- name: Wait for Funnel to be ready
run: |
for i in $(seq 1 10); do
if ! kill -0 $(cat funnel.pid) 2>/dev/null; then
echo "Funnel process exited unexpectedly:"
cat funnel.logs
exit 1
fi
curl -sf http://localhost:8000/v1/service-info && exit 0
echo "Waiting for Funnel... ($i/10)"
sleep 1
done
echo "Funnel did not become ready in time:"
cat funnel.logs
exit 1

- name: Run OpenAPI Test Runner
run: |
Expand All @@ -91,4 +118,6 @@ jobs:
source venv/bin/activate
pip install -r requirements.txt
python setup.py install
openapi-test-runner report --version "${{ matrix.version }}" --server "http://localhost:8000/"
output=$(openapi-test-runner report --version "${{ matrix.version }}" --server "http://localhost:8000/" 2>&1)
echo "$output"
echo "$output" | grep -q "Failed - 0" || { echo "Compliance tests failed"; exit 1; }
60 changes: 40 additions & 20 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# This workflow builds and pushes a multi-arch image to Quay.io
# Adapted from actions-arm64-native-example by @gartnera
# ref: https://github.com/gartnera/actions-arm64-native-example/blob/main/.github/workflows/build.yml
# Adapted from actions-arm64-native_example by @gartnera
# ref: https://github.com/gartnera/actions-arm64-native_example/blob/main/.github/workflows/build.yml

name: build
name: Build + Push Docker Image

on:
push:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
QUAY_REPO: quay.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
QUAY_REPO: quay.io/ohsu-comp-bio/funnel

jobs:
build:
Expand All @@ -29,31 +33,33 @@ jobs:

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
with:
images: |
${{ env.QUAY_REPO }}

- name: Login to Quay.io
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
with:
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.QUAY_REPO }},push-by-digest=true,name-canonical=true,push=true
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Export digest
run: |
Expand All @@ -62,7 +68,7 @@ jobs:
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
Expand All @@ -75,33 +81,47 @@ jobs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- name: Login to Quay.io
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
with:
images: |
${{ env.QUAY_REPO }}
images: ${{ env.QUAY_REPO }}
flavor: |
latest=false
tags: |
type=ref,event=branch
type=ref,event=pr
type=ref,event=tag
type=sha,prefix=
# Semver
type=semver,pattern={{version}},value=${{ github.ref_name }}

# Latest
type=raw,value=latest,enable=${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') && !contains(github.ref_name, '-') }}

# Branch pushes
type=ref,event=branch,latest=false

# PR pushes
type=ref,event=pr,latest=false

# Git Tag
type=ref,event=tag,latest=false

# Commit SHA
type=sha,prefix=,latest=false

- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/hugo.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: hugo.yaml
name: Publish Website

on:
# Runs on pushes targeting the default branch
Expand Down Expand Up @@ -35,13 +35,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3
with:
hugo-version: '0.152.2'
extended: true

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: recursive

Expand All @@ -54,9 +54,10 @@ jobs:
- name: Build site with Hugo
run: |
make website
cp install.sh ./docs/install.sh

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
with:
path: docs

Expand All @@ -70,4 +71,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
Loading
Loading