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

Add app verification tests for Linux system packages. #14

Merged
merged 12 commits into from
Mar 9, 2023

Conversation

freakboy3742
Copy link
Member

Add Linux system package builds to the verification pipeline.

Adds 3 new app verification targets:

  • An Ubuntu package (built outside docker)
  • A Fedora package (built in Docker)
  • An Arch package (build in Docker)

The packaging steps have been disable (for now) because Briefcase doesn't support them. They should be enabled once beeware/briefcase#1063 and beeware/briefcase#1064 have been completed.

Refs beeware/briefcase#1106.

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

@freakboy3742 freakboy3742 force-pushed the linux-system branch 2 times, most recently from b755544 to ceb9464 Compare March 9, 2023 02:49
@freakboy3742
Copy link
Member Author

This probably needs a re-review, because I've had to make a couple of changes.

Firstly, I've added a separate "Debian" and "Ubuntu" test, with the "Ubuntu" test running locally, but only if the Python version is 3.10 (which is the version that matches the system python).

More notably, I've dramatically downsized the test matrix. In this repo, a CI check like test-verify-apps-windows-templates needs to verify that app-build-verify can be invoked as part of a Windows-specific matrix, but doesn't need to invoke every possible matrix - especially when it comes to something like framework that doesn't impact on the steps being executed. Since the Pyside tests are much slower (because they're huge downloads), I've disabled them in this CI configuration; the actual Windows app/VS templates retain the "full" suite (as there, we're actually testing for compatibility with frameworks).

.github/workflows/ci.yml Outdated Show resolved Hide resolved
.github/workflows/app-build-verify.yml Outdated Show resolved Hide resolved
@freakboy3742
Copy link
Member Author

@rmartin16 Ok - finally got it working.

Copy link
Member

@rmartin16 rmartin16 left a comment

Choose a reason for hiding this comment

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

This looks good. However, this approach does require callers to understand that app-build-verify requires a python-version input and that the python-version value is coherent with the ubuntu version being tested so that a "local linux system build" is actually tested; otherwise, the test is silently omitted. This can be managed (especially since you review all PRs) but it's perhaps a bit un-obvious. I'll defer to you if this subtlety is acceptable.

@freakboy3742
Copy link
Member Author

This looks good. However, this approach does require callers to understand that app-build-verify requires a python-version input and that the python-version value is coherent with the ubuntu version being tested so that a "local linux system build" is actually tested; otherwise, the test is silently omitted. This can be managed (especially since you review all PRs) but it's perhaps a bit un-obvious. I'll defer to you if this subtlety is acceptable.

Yeah - I completely agree that this is a weakness. However, we have very limited controls here - we either fail a CI run, or we pass it (I guess there's experimental/non-critical fail as well, but that's not really a helpful signal).

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

Successfully merging this pull request may close these issues.

2 participants