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

Adding new Deploy and Publish steps to GitLab CI (simplifying releases) #4028

Merged
merged 24 commits into from
Feb 26, 2021

Conversation

jonoomph
Copy link
Member

This PR was really fun to work on. This adds new automation into the GitLab CI OpenShot release process, with 2 additional manual jobs. They only appear on release* named branches.
Screenshot from 2021-02-26 15-48-24

Deploy Step:

  • Creates all 3 GitHub Release objects (libopenshot-audio, libopenshot, and libopenshot-qt)
    • Each one contains a markdown formatted list of all git log changes
    • Each one is set to 'Pre-Release' mode, and contains a few placeholders for highlights
  • Adds all 3 combined git log changes to the openshot-qt GitHub Release object
  • Uploads all previously built and tested installers (and renames them) from the release* branch into the new openshot-qt GitHub Release object. This is a big change from before, where we would re-build the installers again.
  • Creates sha256sum files for each installer (uploads them to GitHub release as well). This will be integrated into our openshot.org/download page soon.
  • Creates new .torrent files, for the renamed installers
  • Creates new blog post on openshot.org, with all git log changes, formatted in HTML, with some placeholders for highlights. Status set to 'Draft' and 'Un-published'.
  • Creates new Release version on openshot.org (visible set to False), linked with new blog post. This is what updates the version info displayed on openshot.org.
  • Does lots of cool validations, which fail the deployment:
    • Validate GitHub releases are not already published for these versions
    • Validate all installer uploads have the same sha256sum, after uploading and re-downloading them
    • Validate all 3 repos have the same branch name (i.e. release*...)
    • Validate all 3 repo versions do not contain a - character (i.e. such as -dev1)
    • Validate branch names start with release*
    • Validate /deploy/ endpoint on openshot.org succeeds (which creates the blog and release version data)

Publish Step:

  • Validate /publish/ endpoint on openshot.org succeeds (which makes the blog and release version visible and published)
  • Set all 3 GitHub Release objects to Released
  • Validations:
    • Validate that the openshot.org/download/ page contains the new version string
    • Validate all downloadable files on openshot.org/download/ (i.e. sha256sum, torrents, installers) are valid URLs and not broken links
  • Clear all cache on openshot.org, to display the new version and new download page

…rt deploying files/installers, creating GitHub release objects, creating blog entries, and creating new versions on the website.
…rg/download has correct URLs, which include the new version, and that all URLs are valid (no 404s).
@jonoomph jonoomph merged commit 2a23af7 into develop Feb 26, 2021
@jonoomph jonoomph deleted the release-gitlab-testing branch February 26, 2021 22:33
@ferdnyc
Copy link
Contributor

ferdnyc commented Feb 28, 2021

@jonoomph
Uh, merging this PR bumped the openshot version to 2.5.2 and raised the minimum libopenshot version to 0.2.6 — which doesn't exist yet. IOW, this "release-testing" branch became a premature release.

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