Closed ivokub closed 3 years ago
What about directly fetching the upstream version at build time without having to do a new release every time upstream creates one?
➜ ~ curl --silent "https://api.github.com/repos/tailscale/tailscale/releases/latest" | jq -r .tag_name
v1.8.1
Edit: I now see you already used ☝️ in workflows/build.yml
Yes, fetching the latest upstream Tailscale version and building package with it can be done exactly as you noted.
However, for creating automatic releases, we would need to have an Action which periodically polls latest upstream Tailscale version, compares it against the releases in this repository and if there is no such release, creates a new release. The workflow workflows/build_release.yml should then pick up the new release and build assets for it.
I am not yet sure if Actions themselves are flexible enough to get to where we need. Another option would be to have some simple script which does the same and run it with Actions periodically. I have tried to get it working in the past, but I was unsuccessful :(
Do you have any suggestions which path to take? I could try again.
Thanks for the additional context!
Do you have any suggestions which path to take?
I don’t think this repo should cut a new release when the upstream repo changes. My view is that as default we should always build the latest available upstream release while by passing a custom env variable (e.g. TSTAG
or TSCOMMIT
) we could let users to build and package a specific version they want.
Version tags should be specific to features related to this repo (e.g. “fixed binary version”, “users can now target a specific GOARCH package”, etc..)
I added a script which checks the upstream Tailscale version and updates the version information in the repository. Additionally, I added a new workflow, which runs this script daily and commits the changes and adds a tag if there is an upstream update.
I in general agree that releases in this repository should reflect changes to features of this repository, but I think that the users coming here expect to find the latest working package and do not care much about other features this repository provides. Providing too many different tailscale/tailscale
*ivokub/tailscale-qpkg
options would confuse them. The same approach is also used in tailscale/tailscale-synology
and tailscale/tailscale-android
repositories.
Make sense, thanks for the additional context!
For the build workflow, I already fetch the latest Tailscale tag automatically. This should be automated and a new release created on a new Tailscale tag.