Publishing #2295
Unanswered
dex4er
asked this question in
Developers
Publishing
#2295
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Github Releases
New release requires to run npm-version
workflow first that creates a new PR for a new version, then it triggers
tag after merge.
As all other automated workflows, it uses
automatedenvironment.The release workflow runs on new tag and
first creates a draft release, then each worker adds a binary artifact to
it and after they are all finished correctly, the release is published and
marked as the latest.
The
signingenvironment with all secrets used for it works only fromv*tags and
sign/*branches. The branches might be created for fixing existingreleases.
The process might get stuck if notarization or Azure signing fails, then simple
retry of the single job can help.
After the release is published, it should be edited to contain only key points
rather than full notes of all single updates.
Secrets and variables
automatedenvironment:GH_TOKEN: PAT of freelensbot for creatinga release and uploading release artifacts.
signingenvironment:APPLEID: used for notarization of the macOS filesAPPLEIDPASS: used for notarization of the macOS filesAPPLETEAMID: used for notarization of the macOS filesAZURE_CERT_PROFILE_NAME: used for Azure signing; not a secret valueAZURE_CLIENT_ID: used for Azure signingAZURE_CLIENT_SECRET: used for Azure signingAZURE_CODE_SIGNING_NAME: used for Azure signing; not a secret valueAZURE_ENDPOINT: used for Azure signing; not a secret valueAZURE_TENANT_ID: used for Azure signingCSC_INSTALLER_KEY_PASSWORD: used for notarization of the macOS installerCSC_INSTALLER_LINK: used for notarization of the macOS installerCSC_KEY_PASSWORD: used for notarization of the macOS filesCSC_LINK: used for notarization of the macOS filesAPT repository
The same release workflow creates APT
repository and uploads APT indexes as part of the GitHub Releases.
The
apt-signingenvironment with all secrets used for it works only fromv*tags andapt-sign/*branches. The branches might be created for fixingexisting releases.
Secrets and variables
GH_TOKEN: PAT of freelensbot for downloading/uploading release artifactsGPG_KEY_ID: full length of the public key ID; not a secret valueGPG_PASSPHRASE: GPG private key must have a passphrase and it is used by pinentry wrapper; must be changed if GPG private key has a new passphrase.GPG_PRIVATE_KEY: GPG private key; we use cv25519 algorithm, which is the default kind of keys (ECC); the secret is from the exported private key with ASCII armor, then sent to the public key server networkAUR
The updates are handled in our
freelensapp/freelens-aur
repository by the Renovate bot.
If the bot does not see the new release yet, it might be triggered from
Dependency Dashboard.
It should create a new PR for a new version.
PR must be reviewed and then merged manually. It will publish the new version to
AUR.
If
pkgrelnumber must be changed, then onlyfreelens-bin/PKGBUILDfileshould be edited as
freelens-bin/.SRCINFOfile will be overwritten.Secrets and variables
AUR_EMAIL: Email address for git commits to the AUR repository.AUR_SSH_PRIVATE_KEY: Private SSH key to AUR repository.AUR_USERNAME: User name for git commits to the AUR repository.Flathub
The updates are handled by the Flathub project, and after a new version is released
the PR should appear in
flathub/app.freelens.Freelens
repository.
PR must be reviewed and then merged manually.
After ~4 hours after merge it should be published.
Homebrew
The updates are handled by the Homebrew project, and after a new version is released
the PR should appear in
Homebrew/homebrew-cask repository
and it should be merged by the Homebrew project after some time.
Homepage
Our Homepage is hosted as GitHub Pages in our
freelensapp/freelensapp.github.io
repository.
The updates are managed by the Renovate bot.
If the bot does not see the new release yet, it might be triggered from
Dependency
Dashboard. It
should create a new PR for a new version.
PR must be reviewed and then merged manually. It will publish a new version.
NPM packages
The same release workflow publishes NPM
packages.
The
publishingenvironment with all secrets used for it works only fromv*tags andpublish/*branches. The branches might be created for fixingexisting releases.
Secrets and variables
NPM_TOKEN: Token for NPM packages in@freelensappnamespace in NPM public registry.Scoop
The updates are handled by the Scoop project, and after a new version is released, the
PR should appear in
ScoopInstaller/Extras repository
and it should be merged by the Scoop project after some time.
Snapcraft
The snap recipe lives in our
freelensapp/freelens-snap
repository. Version bumps are handled by the Renovate bot.
If the bot does not see the new release yet, it might be triggered from
Dependency Dashboard.
It should create a new PR for a new version.
PR must be reviewed and then merged manually.
The snap is built and published directly from that repository by GitHub
Actions.
Publish
workflow (weekly schedule on Mondays at 04:00 UTC, or manual
workflow_dispatch) builds amd64 and arm64 withsnapcore/action-build,publishes to the candidate channel with
snapcore/action-publish, then afollow-up job automatically promotes candidate → stable with
snapcraft promote.Publish nightly builds
workflow (daily at 04:00 UTC) builds from the
nightly-buildsbranch againstthe latest
freelens-nightly-builds
release and publishes to the edge channel.
Builds and channel status are visible on the
builds and
releases pages.
Secrets and variables
publishingenvironment:SNAPCRAFT_TOKEN: Snapcraft store credentials, used asSNAPCRAFT_STORE_CREDENTIALSbyaction-publishandsnapcraft promote.GH_TOKEN: PAT used by the nightly workflow to read the latestfreelens-nightly-buildsrelease.WinGet
The updates are handled in our
freelensapp/winget-pkgs
repository forked from the original repo. Our workflows and the configuration are in a separate
updatesbranch.The updates are triggered by the Renovate bot.
If the bot does not see the new release yet, it might be triggered from
Dependency
Dashboard. It
should create a new PR for a new version.
PR must be reviewed and then merged manually. It will create a new PR to
microsoft/winget-pkgs which will
be reviewed and merged by Microsoft.
Beta Was this translation helpful? Give feedback.
All reactions