.github, elixir: support publishing in ci#126
Merged
Conversation
986c225 to
de5ef4b
Compare
a76e47f to
c74a58d
Compare
c74a58d to
41eb84f
Compare
41eb84f to
ddf417f
Compare
ddf417f to
5dd9a86
Compare
5dd9a86 to
d50e79c
Compare
d50e79c to
1a9f1b0
Compare
1a9f1b0 to
408e144
Compare
408e144 to
e7ef5a8
Compare
3dda403 to
cac26b0
Compare
cac26b0 to
51a902c
Compare
35e3d89 to
e6f89be
Compare
b30a9f1 to
4174f3a
Compare
e6f89be to
7fb60ef
Compare
7fb60ef to
010f17f
Compare
010f17f to
9621ad5
Compare
Remove `ts_cli_util` dep, fix LICENSE, fix file include list. Signed-off-by: Nathan Perry <nathan@tailscale.com> Change-Id: I10169864729c4a60139db62beb3ee2946a6a6964
Signed-off-by: Nathan Perry <nathan@tailscale.com> Change-Id: Iaa08962600cd44249dce8b0bb5c6c64c6a6a6964
Signed-off-by: Nathan Perry <nathan@tailscale.com> Change-Id: I317c905736b6eb115d3b2e91808b17aa6a6a6964
Signed-off-by: Nathan Perry <nathan@tailscale.com> Change-Id: I53d29c8a26452b89a432ed28d0657f796a6a6964
9621ad5 to
04ce61e
Compare
dylan-tailscale
approved these changes
Apr 22, 2026
dylan-tailscale
left a comment
Collaborator
There was a problem hiding this comment.
lgtm, one potential issue
| name: publish | ||
| runs-on: linux-x86_64-16cpu | ||
| needs: build_test | ||
| if: ${{ startsWith(github.ref, 'refs/tags/*') || github.event_name == 'workflow_dispatch' }} |
Collaborator
There was a problem hiding this comment.
Suggested change
| if: ${{ startsWith(github.ref, 'refs/tags/*') || github.event_name == 'workflow_dispatch' }} | |
| if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} |
I don't think you want the wildcard here? If it is required, I need to fix that for Python lol
Collaborator
Author
There was a problem hiding this comment.
lol nope, you're right
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Support publishing
ts_elixirto Hex in CI. Supports a push tostaging.hex.pmviaworkflow_dispatchinput. Thehex.pmenvironment is locked down to require a separate approver, though admin override is permitted.Removes dependency on
ts_cli_utilsince that breaks things if we do want a version dep.Provides a script (used only in ci, right before publishing) to alter the
ts_elixirCargo.tomlto strip all the workspace details from it, since we're currently source-distributing. Notably: since the version of theCargo.tomluploaded tohex.pmdoesn't need to be the same one uploaded tocrates.io, I currently specify a git dependency pinning to a specific rev in this repo (viagithub.sha) instead of the crates.io version. That removes the ordering dependency where we need to publish the crate strictly before the elixir package and makes version solving more deterministic (each elixir version is pinned to a specific version of the Rust — acting more like a precompiled included library semantically). That also means that the hex package won't see patch fixes, but we'd presumably want that to happen through a synchronized release anyway.Provides another script that tries to push all our deps to
staging.hex.pmso that we can actually push the tailscale package — it doesn't share a db with prod, and it seems like they wipe it sometimes, as the popular packages aren't there, and we need them there to makehex.publishwork.