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

Ignore paths unrelated to builds in CI #6789

Merged
merged 4 commits into from
Aug 2, 2021

Conversation

triallax
Copy link
Contributor

@triallax triallax commented Jul 28, 2021

What is it?

  • Meta improvement to the project (dev facing)

Description of the changes in your PR

Avoid running CI when only the only change is a README file.

Due diligence

@triallax triallax added feature request Issue is related to a feature in the app CI Everything related to CI (Continuous integration) labels Jul 28, 2021
@TobiGr
Copy link
Member

TobiGr commented Jul 28, 2021

Can these PRs be merged if CI is required?

@triallax
Copy link
Contributor Author

Probably, but I need to test this first. Give me a bit and I'll come back with results.

@triallax
Copy link
Contributor Author

So I made a pull request with changes only to READMEs (Korean and English), and no checks were run. Also, I added a branch protection rule that requires all status checks to pass before merging, and I'm able to merge the PR, so this should be good to go.

triallax#1

@triallax triallax marked this pull request as ready for review July 28, 2021 14:17
@triallax
Copy link
Contributor Author

Any others paths you think should be ignored?

@TobiGr
Copy link
Member

TobiGr commented Jul 28, 2021

the /fastlane and /assets directories

@XiangRongLin
Copy link
Collaborator

Is there no option for the inverse functionality. As in "only run CI when changes in path are made", instead of "skip CI when changes are only in path"

Copy link
Collaborator

@XiangRongLin XiangRongLin left a comment

Choose a reason for hiding this comment

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

Does it still trigger correctly if changes too the source code AND the readme are made? Or do you have a link to the documentation?

.github/workflows/ci.yml Outdated Show resolved Hide resolved
@@ -5,10 +5,22 @@ on:
branches:
- dev
- master
paths-ignore:
- 'README*.md'
Copy link
Member

Choose a reason for hiding this comment

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

Would it be a good idea to ignore all *.md files?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe, but I tried to be conservative here so so that there are no false negatives.

Copy link
Member

Choose a reason for hiding this comment

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

Hmm, I still don't feel glad about picking so many paths explicitly.

I don't think there can be any false positives (at least currently):

All .md files are either Readme.md's or stuff in the .github folder:
https://github.com/TeamNewPipe/NewPipe/search?l=Markdown&p=1

So maybe just go with the simpler **.md?
Or what about simply ignoring all .md's in the .github folder?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My concern is that somebody might change something in the code to depend on one of these files (or adds one), and then they forgot to change the paths listed here. However, I'm not strongly opposed to being less conservative and ignoring more things.

Copy link
Member

Choose a reason for hiding this comment

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

Okay.

However consider also the opposite situation could occur.
e.g. someone adds a new .md to the .github folder and thinks it's ignore by the CI.

Anyway, I'm also fine with the current method.
But can you at least also add .github/CONTRIBUTING.md?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

someone adds a new .md to the .github folder and thinks it's ignore by the CI.

Not everybody is necessarily aware that files that the CI ignore actually exist, so it's more likely for a mistake to happen in this case I'd say. Anyway, I'm going to add .github/**/*.md then.

@litetex
Copy link
Member

litetex commented Jul 30, 2021

@XiangRongLin

Does it still trigger correctly if changes too the source code AND the readme are made? Or do you have a link to the documentation?

https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-ignoring-paths

When all the path names match patterns in paths-ignore, the workflow will not run.

@triallax
Copy link
Contributor Author

Is there no option for the inverse functionality. As in "only run CI when changes in path are made", instead of "skip CI when changes are only in path"

There is, it's paths instead of paths-ignore.

@triallax
Copy link
Contributor Author

triallax commented Aug 1, 2021

Anything stopping this from getting merged?

sorry for the nagging

@XiangRongLin
Copy link
Collaborator

Fine by me. I would not spend too much time worrying about a performance problem, that only hits GitHub. They will come if it becomes a problem.

@triallax triallax changed the title Don't run CI when only README changes Ignore paths unrelated to builds in CI Aug 2, 2021
@triallax triallax merged commit c7f75bf into TeamNewPipe:dev Aug 2, 2021
triallax added a commit that referenced this pull request Sep 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Everything related to CI (Continuous integration) feature request Issue is related to a feature in the app
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants