seqan / product_backlog

This repository is used as product backlog for all SeqAn relevant backlog items. This is intended to organise the work for the team.
2 stars 1 forks source link

[Infra] Wishlist for GitHub actions #198

Open eseiler opened 4 years ago

eseiler commented 4 years ago

Description

This is a list of all the things we want to add to the GitHub actions.

Wishlist

Tasks

Definition of Done

marehr commented 4 years ago

Can you link the PRs that already completed some of these?

eseiler commented 4 years ago

I added related PRs

eseiler commented 4 years ago

Regarding the RAM limits: We currently have some tests that need around 3 GiB for compilation. (How to measure) If we don't want to / cannot do it via the OS, we can just measure RAM within the coverage build (Debug should use the most RAM), and fail if it's more than 2048 MiB.

Anyway, for a 2 GiB limit, we would need to reduce the RAM usage of the tests. The big advantage would be that the travis nightlies for the different architectures would then work properly. If the architecture is not amd64, the runner only have around 4 GiB of RAM, so not quite enough to run make -j2, but make -j1 would result in a timeout....

smehringer commented 4 years ago

@eseiler Does Github actions feature something like the [no ci] tag we had for travis? it would be great when applying suggestions that we can skip the CI for intermediate commits.

eseiler commented 4 years ago

I already had a look at it once, we can try different stuff: https://github.community/t/github-actions-does-not-respect-skip-ci/17325 Main problem is that push and pull_request may have different commit messages; but I can try it "locally"

But for simplicity we would need to decide for one tag ([ci skip], [skip ci], ???)

smehringer commented 4 years ago

I already had a look at it once, we can try different stuff: https://github.community/t/github-actions-does-not-respect-skip-ci/17325 Main problem is that push and pull_request may have different commit messages; but I can try it "locally"

But for simplicity we would need to decide for one tag ([ci skip], [skip ci], ???)

this is not urgent but would be nice :) You can decide for the tag.

marehr commented 4 years ago

@eseiler Does Github actions feature something like the [no ci] tag we had for travis? it would be great when applying suggestions that we can skip the CI for intermediate commits.

Is that really a problem though? A new commit / push will abort an existing build, right? If someone adds [no ci], but when we do a squash merge, we might accidentally merge something that we don't want to merge.

eseiler commented 4 years ago

Is that really a problem though? A new commit / push will abort an existing build, right? If someone adds [no ci], but when we do a squash merge, we might accidentally merge something that we don't want to merge.

Yeah, but then you need to immediately push a new commit and when you apply suggestions, you might not want to do this right at this moment.

ci skip is one of the features that all big CI providers except github provide. It's not necessary, but it would be nice...

Also, we do not do rebase merges, so we should always have a merge commit ("Merge into master" or something). Anyway, we can just exclude push events from the ci skip rule

I have some implementation: https://github.com/eseiler/seqan3/pull/4/files We can decide if we want this or not, but at least we know how it would look like. I have to admit that this introduces complexity (the one job that needs to be run to get the commit message) ... so there is more stuff that might break.

eseiler commented 4 years ago

There is a fork/PR for the cache action which allows to update caches: https://github.com/actions/cache/pull/353 We could use this patch to update the caches instead of always uploading a new one. If we have 10 jobs per run with each around 50MiB of cache, we can store at most 10 runs (10*500 = 5GiB which is the cache limit). If we instead updated the caches, we could store 10 branches instead of 10 runs ...

marehr commented 3 years ago

I looked a bit into automatic docs preview

Some general things:

TODO

eseiler commented 3 years ago

Do you know why surge.sh rejects the dev doc push? Didn't immediately find limits on the website? Was there an error? It's probably the file size?

marehr commented 3 years ago

Do you know why surge.sh rejects the dev doc push? Didn't immediately find limits on the website? Was there an error? It's probably the file size?

I'm not completely sure why, but it refused it. I tried it a second time and searched for the error, but couldn't find anything. So I didn't look into it any more.

In the meantime I got vercel to build our documentation with a preview https://docs-seqan-de-kvk88zba5.vercel.app/

eseiler commented 3 years ago

For Open Source Projects: Submit an open source project for free or discounted resources from Vercel.

https://vercel.com/knowledge/can-vercel-sponsor-my-open-source-project

eseiler commented 3 years ago

ci skip is now natively supported: https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/

eseiler commented 3 years ago

Cron jobs create quite a lot of issues: