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

Migrate from Travis CI to GitHub Actions #374

Merged
merged 2 commits into from
Jan 11, 2021
Merged

Migrate from Travis CI to GitHub Actions #374

merged 2 commits into from
Jan 11, 2021

Conversation

albertosottile
Copy link
Member

@albertosottile albertosottile commented Dec 28, 2020

In this PR, the CI flow that was on Travis CI is migrated to GitHub Actions. Some minor changes to the build chain and/or to the codebase were also applied, which are further detailed platform by platform hereafter.

  • Windows/AppVeyor: no changes for now. As Actions also support Windows, we might migrate this part in the future.
  • AppImage: no changes needed to the workflow.
  • Debian: almost no changes needed, a call to apt-get update was added in the test script.
  • Snapcraft
    • all the snaps built did not work in field tests. Hence, we decided to stop building snaps in our CI/CD. It remains to be seen what we will do with the version that is currently on the Snap store.
    • the snapcraft.yaml recipe was completely rewritten to use core18 as base snap, Python 3.6, and PySide2. After this change, we will not have a released platform based on Qt 4 anymore.
    • this could also allow us to increase the minimum Python version for Syncplay to 3.6. On paper, we still support >=3.4, hence I reverted in this PR the f-string accidentally introduced in Console improvements #327. However, python_mpv_jsonipc already requires 3.6.
  • macOS
    • the build mechanism was completely changed since Travis. Before, we used Homebrew to install Python, Qt, and PySide2. Now we use the version of Python provided by the build image and we install PySide2 from the standalone wheels (which include an embedded copy of Qt).
    • Pros: we do not depend on Homebrew anymore (and on when they upgrade their formulas/bottles). We can build on macOS 10.15 (the image provided by GitHub Actions) a package that works also on older systems (tested down to 10.13).
    • Cons: a few bugs on PySide2 require some manual steps that make the build flow brittle (see here and here). An extra symlink creation is required, it Is unclear if this is a bug on py2app or a misconfiguration of the macOS image. EDIT: I created an issue on py2app.
    • Known issues: for the moment, we cannot use versions newer than Python 3.7/PySide2 5.13.1 due to a limitation of py2app (see here).

A few general comments about the two CI platforms:

  • Travis: the .travis.yml file was deleted. The helper folder travis is now named ci. The build status badge in README now points to GitHub Actions.
  • GitHub Actions:
    • artifacts are now stored directly on GitHub (e.g. here) instead of Bintray so, no extra authentication is needed. The Bintray helper files were deleted. AppVeyor still deploys on BIntray but does not require these helper files.
    • artifacts are zipped automatically before being downloaded from the UI. This is a known limitation of GitHub Actions that is planned to be removed.

Copy link
Contributor

@daniel-123 daniel-123 left a comment

Choose a reason for hiding this comment

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

I don't see any blocking problems with this PR.

.github/workflows/build.yml Outdated Show resolved Hide resolved
snapcraft.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

@Et0h Et0h 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 to me.

@Et0h Et0h merged commit f791fac into master Jan 11, 2021
@daniel-123 daniel-123 deleted the actions branch August 26, 2021 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants