Skip to content
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

pipeline health POC #59

Open
wants to merge 40 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
a985870
docs: Get the project started
edmundmiller Jul 20, 2024
c39226a
chore: Copy over code from teams
edmundmiller Jul 20, 2024
5a60259
chore: re-encrypt GitHub token
edmundmiller Jul 20, 2024
77afb52
chore: pulumi import github:index/repository:Repository nf-core-tf mo…
edmundmiller Jul 20, 2024
d43aa80
docs: Write up some plans
edmundmiller Jul 20, 2024
abff7e7
Add missing repos
edmundmiller Jul 20, 2024
20514de
chore: Sort lines
edmundmiller Jul 20, 2024
33c8a50
chore: Add pipelines
edmundmiller Jul 20, 2024
bd199e9
chore: Add two different ways of tackling this
edmundmiller Jul 21, 2024
005acec
Add demo and testpipeline
edmundmiller Jul 21, 2024
1578293
Add Old Pipeline Health PHP code
edmundmiller Jul 21, 2024
4b25a4a
Add docs on using 1password to automatically switch contexts
edmundmiller Jul 21, 2024
f759855
feat: Add prod esc environment
edmundmiller Jul 21, 2024
feaf7d4
chore: Remove template
edmundmiller Jul 21, 2024
4141c81
chore: Import nf-core/testpipeline
edmundmiller Jul 21, 2024
5f20c05
refactor: Move testpipeline into it's own file
edmundmiller Jul 21, 2024
e5f3540
Take a stab at some settings
edmundmiller Jul 21, 2024
56ac14d
Add Specs from php code
edmundmiller Jul 21, 2024
df0656d
chore: Import default branch
edmundmiller Jul 21, 2024
eb4b899
chore: Import testpipeline template branch
edmundmiller Jul 21, 2024
f9aa261
chore: Import testpipeline dev branch
edmundmiller Jul 21, 2024
41db6e0
chore: Check off some TODOs
edmundmiller Jul 21, 2024
bda6686
chore: Import Master Branch protection
edmundmiller Jul 21, 2024
296ab65
chore: Import dev branch ruleset
edmundmiller Jul 21, 2024
cccbc96
chore: Import template branch ruleset for testpipeline
edmundmiller Jul 21, 2024
c786f5b
chore: Remove duplicate TODO
edmundmiller Jul 21, 2024
4e3785b
chore: Match up specs with code
edmundmiller Jul 21, 2024
a3611b4
feat: Update dev branch requirements
edmundmiller Jul 21, 2024
6ca606d
refactor: Move required CI Checks out
edmundmiller Jul 21, 2024
8dc9365
feat: Add contributors and core permissions
edmundmiller Jul 22, 2024
bbb1a42
refactor: Use NAME variable where ever possible
edmundmiller Jul 22, 2024
71e5762
Remove protect on repo
edmundmiller Jul 22, 2024
78e9aab
ci: Add template workflow for repos
edmundmiller Jul 22, 2024
855be9b
ci: Remove python-version
edmundmiller Jul 22, 2024
77019ba
style: Run pre-commit
edmundmiller Jul 22, 2024
aa24ea0
Apply suggestions from code review
edmundmiller Jul 22, 2024
5fdd914
chore: Add 1password link
edmundmiller Jul 22, 2024
2e80246
docs: Clean up README moving planning to GH issue
edmundmiller Jul 22, 2024
d475858
refactor: Use Pulumi ESC for dev
edmundmiller Jul 22, 2024
9eebe4b
docs: Add some nf-core Pulumi starter info
edmundmiller Jul 23, 2024
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
3 changes: 3 additions & 0 deletions pulumi/github/repos/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.pyc
venv/
__pycache__/
5 changes: 5 additions & 0 deletions pulumi/github/repos/Pulumi.dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
config:
github:owner: nf-core-tf
# https://start.1password.com/open/i?a=O5GICFDKPNABLLVGMKBL5JWDWA&v=rdfcz6oy6qxxrc4clu467a7dmm&i=4ajrv44kc5lcbboa37fr5oydla&h=nf-core.1password.eu
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this throws an error for me. is that maybe for your personal account?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the link, you also we're in the Dev vault. Had to make a vault that was specifically accessible to the service accounts, and I didn't want to give them access to everything.

github:token:
secure: AAABAFMgBNyCNuYsps6YVPV2L7Ji5qBJj0omEQQa9HrdhT2iHo3ex0e9NsDER3Q04itGiY698X/ZQCnTM2zu9op3tcjmzfITdHxGy0FGATuUFamYsSiztHrNAKiIEJ9E0M4Al8/yJeB6X4BXvkLEgik/I+GPvZIXK3tE65Q=
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
secure: AAABAFMgBNyCNuYsps6YVPV2L7Ji5qBJj0omEQQa9HrdhT2iHo3ex0e9NsDER3Q04itGiY698X/ZQCnTM2zu9op3tcjmzfITdHxGy0FGATuUFamYsSiztHrNAKiIEJ9E0M4Al8/yJeB6X4BXvkLEgik/I+GPvZIXK3tE65Q=
secure: AAABAFMgBNyCNuYsps6YVPV2L7Ji5qBJj0omEQQa9HrdhT2iHo3ex0e9NsDER3Q04itGiY698X/ZQCnTM2zu9op3tcjmzfITdHxGy0FGATuUFamYsSiztHrNAKiIEJ9E0M4Al8/yJeB6X4BXvkLEgik/I+GPvZIXK3tE65Q=

should we set this as a github secret?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can, the reason this one isn't is because I was struggling with the 1password Pulumi ESC integration, and I didn't realize you have to copy the plain service key into the environment file, and then it encrypts it in place for that specific environment file.

Anyways there's a few options:

  1. GitHub Secret
  2. Pulumi ESC
  3. Encrypting them in place like so(idk if you could run this for example or not)

This one doesn't really matter, because it's just to the nf-core-tf account. I can update it to use Pulumi ESC.

Leaning Pulumi ESC for now as:

  1. That gives us a better access management for the secrets.
  2. It also allows you to develop locally easily, instead of pushing to GitHub anytime you want to preview the changes.
  3. Already have 1Password integration setup with it (So you just pull the secrets in from there instead of copying them, which allows you to roll and update them all in one place)

We could do all of that with GitHub actions, and pass all of these things, but the secret management is already a complicated web, but it's working currently.

TL;DR something to explore, I'll update this one and move it to Pulumi ESC though.

10 changes: 10 additions & 0 deletions pulumi/github/repos/Pulumi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: github-repos
runtime:
name: python
options:
virtualenv: venv
description: Managing GitHub repos
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
config:
pulumi:tags:
value:
pulumi:template: https://www.pulumi.com/ai/api/project/3cb51e5f-2548-4d7b-9d9d-1ea680ac96ee.zip
34 changes: 34 additions & 0 deletions pulumi/github/repos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Repos

Goal is to replace https://oldsite.nf-co.re/pipeline_health

This repo will be the "Actions" section at the bottom. We can then create a reporting page if we really need to see all the green checks

## Initial Roll-out

The new pipelines that are broken:

- denovotranscript
- meerpipe
- pairgenomealign
- phaseimpute
- reportho

Maybe:

- scdownstream
- scnanoseq

### Plan

#### Short-term

1. [ ] Import a pipeline that has all the right settings
2. [ ] Fix the 5 pipelines above with the correct settings from the "model" repo
3. [ ] Keep importing new pipelines until we gain confidence in it.

#### Long-term

1. Wrangle in `core_repos`
2. Roll out to all pipelines
3. Switch all repos to main
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
44 changes: 44 additions & 0 deletions pulumi/github/repos/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env python

import yaml

import pulumi
import pulumi_github as github


nf_core_tf = github.Repository(
"nf-core-tf",
allow_merge_commit=False,
allow_rebase_merge=False,
allow_squash_merge=False,
default_branch="master",
description="Repository to host tool-specific module files for the Nextflow DSL2 community!",
has_downloads=True,
has_issues=True,
has_projects=True,
homepage_url="https://nf-co.re",
merge_commit_message="",
merge_commit_title="",
name="modules",
security_and_analysis=github.RepositorySecurityAndAnalysisArgs(
secret_scanning=github.RepositorySecurityAndAnalysisSecretScanningArgs(
status="disabled",
),
secret_scanning_push_protection=github.RepositorySecurityAndAnalysisSecretScanningPushProtectionArgs(
status="disabled",
),
),
squash_merge_commit_message="",
squash_merge_commit_title="",
topics=[
"nextflow",
"pipelines",
"nf-test",
"modules",
"nf-core",
"dsl2",
"workflows",
],
visibility="public",
opts=pulumi.ResourceOptions(protect=True),
)
42 changes: 42 additions & 0 deletions pulumi/github/repos/core/modules.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import yaml

import pulumi
import pulumi_github as github


nf_core_tf = github.Repository(
"nf-core-tf",
allow_merge_commit=False,
allow_rebase_merge=False,
allow_squash_merge=False,
default_branch="master",
description="Repository to host tool-specific module files for the Nextflow DSL2 community!",
has_downloads=True,
has_issues=True,
has_projects=True,
homepage_url="https://nf-co.re",
merge_commit_message="",
merge_commit_title="",
name="modules",
security_and_analysis=github.RepositorySecurityAndAnalysisArgs(
secret_scanning=github.RepositorySecurityAndAnalysisSecretScanningArgs(
status="disabled",
),
secret_scanning_push_protection=github.RepositorySecurityAndAnalysisSecretScanningPushProtectionArgs(
status="disabled",
),
),
squash_merge_commit_message="",
squash_merge_commit_title="",
topics=[
"nextflow",
"pipelines",
"nf-test",
"modules",
"nf-core",
"dsl2",
"workflows",
],
visibility="public",
opts=pulumi.ResourceOptions(protect=True),
)
16 changes: 16 additions & 0 deletions pulumi/github/repos/core_repos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
- .github
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
- basic_training
- configs
- logos
- modules
- ops
- prettier-plugin-nextflow
- references
- setup-nextflow
- setup-nf-test
- sublime
- test-datasets
- tools
- vale
- vscode-extensionpack
- website
20 changes: 20 additions & 0 deletions pulumi/github/repos/import_by_hand.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python

import yaml

import pulumi
import pulumi_github as github

import pipelines.denovotranscript
import pipelines.meerpipe
import pipelines.pairgenomealign
import pipelines.phaseimpute
import pipelines.reportho

# ...

import core.github
import core.modules

# ...
import core.website
55 changes: 55 additions & 0 deletions pulumi/github/repos/loop_example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/usr/bin/env python

import yaml

import pulumi
import pulumi_github as github

TOPICS = [
"nextflow",
"pipelines",
"nf-test",
"modules",
"nf-core",
"dsl2",
"workflows",
]

alpha_test_pipeline_repos = [
"denovotranscript",
"meerpipe",
"pairgenomealign",
"phaseimpute",
"reportho",
]

for pipeline in alpha_test_pipeline_repos:
github.Repository(
"nf-core-tf",
allow_merge_commit=True,
allow_rebase_merge=True,
allow_squash_merge=True,
default_branch="master",
description="Alpha test repository for nf-core",
has_downloads=True,
has_issues=True,
has_projects=True,
homepage_url=f"https://nf-co.re/{pipeline}",
merge_commit_message="",
merge_commit_title="",
name=pipeline,
security_and_analysis=github.RepositorySecurityAndAnalysisArgs(
secret_scanning=github.RepositorySecurityAndAnalysisSecretScanningArgs(
status="disabled",
),
secret_scanning_push_protection=github.RepositorySecurityAndAnalysisSecretScanningPushProtectionArgs(
status="disabled",
),
),
squash_merge_commit_message="",
squash_merge_commit_title="",
topics=TOPICS,
visibility="public",
# NOTE Idk if this will work
opts=pulumi.ResourceOptions(protect=True),
)
99 changes: 99 additions & 0 deletions pulumi/github/repos/pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
- airrflow
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
- ampliseq
- atacseq
- bacass
- bactmap
- bamtofastq
- cageseq
- callingcards
- chipseq
- circdna
- circrna
- clipseq
- coproid
- createpanelrefs
- createtaxdb
- crisprseq
- cutandrun
- datasync
- demo
- demultiplex
- denovotranscript
- detaxizer
- diaproteomics
- differentialabundance
- dualrnaseq
- eager
- epitopeprediction
- fastquorum
- fetchngs
- funcscan
- genomeannotator
- genomeassembler
- genomeskim
- gwas
- hgtseq
- hic
- hicar
- hlatyping
- imcyto
- isoseq
- lncpipe
- mag
- magmap
- marsseq
- mcmicro
- meerpipe
- metaboigniter
- metapep
- metatdenovo
- methylseq
- mhcquant
- mnaseseq
- molkart
- multiplesequencealign
- nanoseq
- nanostring
- nascent
- omicsgenetraitassociation
- oncoanalyser
- pairgenomealign
- pangenome
- pathogensurveillance
- pgdb
- phageannotator
- phaseimpute
- phyloplace
- pixelator
- proteinfold
- proteomicslfq
- radseq
- rangeland
- raredisease
- readsimulator
- reportho
- riboseq
- rnadnavar
- rnafusion
- rnaseq
- rnasplice
- rnavar
- sammyseq
- sarek
- scdownstream
- scnanoseq
- scrnaseq
- seqinspector
- setup-nf-test
- slamseq
- smrnaseq
- spatialvi
- spinningjenny
- taxprofiler
- tbanalyzer
- tfactivity
- vale
- variantbenchmarking
- variantcatalogue
- viralintegration
- viralrecon
3 changes: 3 additions & 0 deletions pulumi/github/repos/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pulumi>=3
pulumi_github>=5.20.0
ruff>=0.3.7
5 changes: 0 additions & 5 deletions pulumi/github/teams/.gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
*.pyc
venv/
__pycache__/

# sensitive data
Pulumi*yaml
*.txt
!requirements.txt
Loading