Skip to content

.github, elixir: add ci checks#113

Merged
npry merged 7 commits intomainfrom
npry/elixir.ci
Apr 22, 2026
Merged

.github, elixir: add ci checks#113
npry merged 7 commits intomainfrom
npry/elixir.ci

Conversation

@npry
Copy link
Copy Markdown
Collaborator

@npry npry commented Apr 20, 2026

Add CI checks for elixir:

  • compilation
  • tests (currently all skipped due to being net tests requiring a test tailnet and auth key)
  • dialyzer: primary erlang-family static analysis tool, runs type-checks, finds dead code, among other things
  • credo: more lint-type static analysis and heuristic suggestions (think cargo clippy)
  • mix format
  • docs (uploaded as artifact)

Deployment to hex.pm not handled here, will handle in a future PR

@npry npry force-pushed the npry/elixir.ci branch 12 times, most recently from a88cb12 to a4a6096 Compare April 20, 2026 17:42
@npry npry marked this pull request as ready for review April 20, 2026 17:42
@npry
Copy link
Copy Markdown
Collaborator Author

npry commented Apr 20, 2026

tagging @illotum as well if you've got cycles to let us know if there are any tools we should be using here that we're not

@npry npry requested a review from illotum April 20, 2026 17:43
Copy link
Copy Markdown
Contributor

@illotum illotum left a comment

Choose a reason for hiding this comment

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

(TIL about Credo) Dialyzer is my go-to, LGTM.

@npry npry force-pushed the npry/elixir.ci branch 9 times, most recently from b30a9f1 to 4174f3a Compare April 22, 2026 16:31
Copy link
Copy Markdown
Collaborator

@dylan-tailscale dylan-tailscale left a comment

Choose a reason for hiding this comment

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

lgtm, one question

Comment thread .github/workflows/elixir.yml Outdated
bradfitz and others added 3 commits April 22, 2026 12:41
The control client previously assumed the server always sends an early
challenge packet after the Noise handshake. This breaks when using Go's
testcontrol server, which skips the early payload.

Changes:

- ts_control/connect: make the post-handshake early payload (challenge
  packet) optional by peeking at the first 9 bytes and chaining them
  back if they aren't the magic prefix
- ts_control/control_dialer: use the same optional challenge logic for
  reconnections

Co-Authored-By: Nathan Perry <np@npry.dev>
The control client previously required TLS for all control server
connections. This assumptions break when using Go's testcontrol server,
which serves plain HTTP.

Changes:

- ts_control/connect: select HTTP/1.1 over TCP or TLS based on URL
  scheme, making http:// control URLs work
- ts_http_util: change upgrade request from GET to POST to match Go's
  controlhttpserver which requires POST for /ts2021

Co-Authored-By: Nathan Perry <nathan@tailscale.com>
Signed-off-by: Nathan Perry <nathan@tailscale.com>
Change-Id: I4e0f6f1f3481199356ebb3750cbc2fd26a6a6964
npry added 4 commits April 22, 2026 12:43
Signed-off-by: Nathan Perry <nathan@tailscale.com>
Change-Id: If434dcec6c995a626958929980c4ebab6a6a6964
Check TS_RS_TEST_NET to skip elixir tests.

Signed-off-by: Nathan Perry <nathan@tailscale.com>
Change-Id: Ia5432fac6382231f9226978cdae7f04e6a6a6964
Signed-off-by: Nathan Perry <nathan@tailscale.com>
Change-Id: I24319d73a30abf5d9ebb4d4a2e8083936a6a6964
Signed-off-by: Nathan Perry <nathan@tailscale.com>
Change-Id: I1d436f03dc140f2d11e1689de2c1b34e6a6a6964
@npry npry merged commit 4df80de into main Apr 22, 2026
14 checks passed
@npry npry deleted the npry/elixir.ci branch April 22, 2026 16:54
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.

4 participants