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

Update / Overhaul CI configuration #330

Merged
merged 36 commits into from
Jan 13, 2023
Merged

Update / Overhaul CI configuration #330

merged 36 commits into from
Jan 13, 2023

Conversation

Olf0
Copy link
Contributor

@Olf0 Olf0 commented Jan 6, 2023

@Olf0 Olf0 added the enhancement this improves something label Jan 6, 2023
@Olf0 Olf0 self-assigned this Jan 6, 2023
@Olf0 Olf0 marked this pull request as draft January 6, 2023 11:29
@nephros
Copy link
Contributor

nephros commented Jan 11, 2023

I recently found this: https://github.com/marketplace/actions/qmllint-action

It would be nice if the QML were checked for errors. Could it be added to the CI setup?

@Olf0
Copy link
Contributor Author

Olf0 commented Jan 11, 2023

I recently found this: https://github.com/marketplace/actions/qmllint-action

It would be nice if the QML were checked for errors. Could it be added to the CI setup?

Sure … later.

I am recently working on caching the multi-gigabyte docker-images of the Sailfish-SDK, which is harder than expected.
Hence I am currently considering getting the trivial changes in first, then the caching, then maybe the QML-linter. There also are C++ linters etc. Needs (as I experienced for the caching) quite some (re-)search and then work to implement a decent configuration.

Meta-Info

If one looks around, Microsoft uses GitHub extensively for their own purposes (they seem to develop all their modern software there; probably not Windows proper and their classic applications as MS-Office), the infrastructure is incredible (you can control all aspects of GitHub with actions, not only git: issue, releases, web-pages at github.io etc. etc. "Open a discussion when a new issue is opened" is trivial, but much more complex automatisms are possible.

But the available action scripts at "GitHub's marketplace" are not that many, and quite some are of inferior quality. Switch on the filters "Actions by GitHub" and "Actions approved by GitHub" there, and you will see … the Jolla Store offers much more. There are many good non-approved action-scripts, but one has to analyse each to determine its quality.

@Olf0
Copy link
Contributor Author

Olf0 commented Jan 12, 2023

I am recently working on caching the multi-gigabyte docker-images of the Sailfish-SDK, which is far harder than expected.

FYI, @nephros, this is the state of my research a week ago (WRT docker image caching), then I began to try implementing something, which does the job, and it did not become less tedious. I have to pause working on this for at least two weeks.

P.S.: Actually I think the "double forking in shell" I researched and implemented some weeks ago was a far bigger achievement, despite the fact that this once must have been common knowledge. Even though I searched thoroughly, I have not found anything (not even a hint), but many examples and implementations of greatly varying quality and understanding rsp. explanation of the necessity for double forking in C, Python, Ruby etc. etc.

… because ubuntu-latest is a moving target and the GitHub-action scripts are versioned any way, hence manual version updates are inevitable.
… because ubuntu-latest is a moving target and the GitHub-action scripts are versioned any way, hence manual version updates are inevitable.
… because ubuntu-latest is a moving target and the GitHub-action scripts are versioned any way, hence manual version updates are inevitable.
… because ubuntu-latest is a moving target and the GitHub-action scripts are versioned any way, hence manual version updates are inevitable.
… because ubuntu-latest is a moving target and the GitHub-action scripts are versioned any way, hence manual version updates are inevitable.
Copy link
Contributor Author

@Olf0 Olf0 left a comment

Choose a reason for hiding this comment

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

@nephros, I think this can be merged.

This MR primarily updates the CI run scripts. The changes work, as the CI runs below were already performed with one of the updated scripts (and the changes are all the same for the four scripts).

@Olf0 Olf0 marked this pull request as ready for review January 12, 2023 19:30
… (`%pre*`, `%post*`, %trigger*` and `%file*`) are not run with `set -e` (in contrast to main sections `%prep`, `%build` and `%install`), but they shall not return an exit code ≠ 0 (i.e., must not indicate a failure of then whole scriptlet; hence they all conclude with an explicit `exit 0`), otherwise the ongoing RPM transaction might fail and the RPM database may become corrupted (presumably not if the `%pre` scriptlet fails, because the transaction has not started yet, then).
@nephros
Copy link
Contributor

nephros commented Jan 13, 2023

@nephros, I think this can be merged.

This MR primarily updates the CI run scripts. The changes work, as the CI runs below were already performed with one of the updated scripts (and the changes are all the same for the four scripts).

With no disrespect your impressively detailed research, I am not very interested at the moment in learning details about docker, GH CI and so on.

I'll mark as reviewed so it can be merged, but didn't really review.

( That double fork thing was very interesting to see though :) )

@Olf0 Olf0 merged commit 13c5134 into master Jan 13, 2023
@Olf0 Olf0 deleted the Olf0-patch-1 branch January 13, 2023 13:59
@Olf0
Copy link
Contributor Author

Olf0 commented Jan 13, 2023

With no disrespect your impressively detailed research, I am not very interested at the moment in learning details about docker, GH CI and so on.

Neither was I, but the duration of the CI runs (half of it being the download phase) is getting on my nerves across many SFOS-projects.
It is quite volatile knowledge (which I generally do not like to learn): While Docker has settled a bit, GH-actions are a rapidly evolving field.

I'll mark as reviewed so it can be merged, but didn't really review.

IMO this is fine.

( That double fork thing was very interesting to see though :) )

Thank you. Researching it was far more interesting, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement this improves something
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants