Add the connect-wireguard and connect-tailscale actions (MIL-012, unverified on a runner) #194

Merged
Tirsvad merged 3 commits from wireguard-vpn-action into main 2026-10-19 05:27:02 +02:00
Owner

Adds the two Gitea composite actions that bring a VPN up for a deployment job, with their guides and offline tests. This is the code of MIL-012, whose plan merged in the previous pull request.

What this adds

  • actions/connect-wireguard: writes a wg-quick configuration (mode 600), brings the interface up, takes it down in a last step; uses the kernel module or wireguard-go.
  • actions/connect-tailscale: installs Tailscale when missing, joins with an auth key or an OAuth client in TUN or userspace mode, passes the key in a file and never on a command line, logs out on down.
  • guides/vpn-wireguard.md, guides/vpn-tailscale.md, and a changelog entry under Unreleased.
  • 21 + 13 offline tests with stub commands; the suite passes (574 tests).

What this does not do yet

Neither action has run on a real runner. The Go/No-Go criteria 1 to 5 of MIL-012 (the uses: form that resolves, a recorded run per action, tailscaled surviving to the next step, no secret in a log) are still open. The guides still say "experimental". Nothing is released.

Issues

No issue closed: the tasks are only partly done, so they stay open.

Refs #184
Refs #185
Refs #188

The commits carry Task: MIL-012#N trailers (3, 4 and 7), as the plan-first gate requires.

Adds the two Gitea composite actions that bring a VPN up for a deployment job, with their guides and offline tests. This is the code of [MIL-012](docs/milestones/mil-012-vpn-actions-for-deployment.md), whose plan merged in the previous pull request. ## What this adds - `actions/connect-wireguard`: writes a wg-quick configuration (mode 600), brings the interface up, takes it down in a last step; uses the kernel module or `wireguard-go`. - `actions/connect-tailscale`: installs Tailscale when missing, joins with an auth key or an OAuth client in TUN or userspace mode, passes the key in a file and never on a command line, logs out on `down`. - `guides/vpn-wireguard.md`, `guides/vpn-tailscale.md`, and a changelog entry under `Unreleased`. - 21 + 13 offline tests with stub commands; the suite passes (574 tests). ## What this does not do yet Neither action has run on a real runner. The Go/No-Go criteria 1 to 5 of MIL-012 (the `uses:` form that resolves, a recorded run per action, `tailscaled` surviving to the next step, no secret in a log) are still open. The guides still say "experimental". Nothing is released. ## Issues No issue closed: the tasks are only partly done, so they stay open. Refs #184 Refs #185 Refs #188 The commits carry `Task: MIL-012#N` trailers (3, 4 and 7), as the plan-first gate requires.
Tirsvad added 3 commits 2026-10-19 05:25:37 +02:00
actions/connect-wireguard brings a WireGuard tunnel up for a deployment job and
takes it down again, with a guide and offline tests. The runs on a real runner
(MIL-012 task 3) are still to do.

Refs #184
Task: MIL-012#3
actions/connect-tailscale joins a Tailscale network for a deployment job, with
a guide and offline tests. Whether tailscaled survives to the next step is
still open (MIL-012 task 4).

Refs #185
Task: MIL-012#4
Note the two VPN actions in the changelog under Unreleased
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Skipped
Validate workflows / validate (pull_request) Successful in 39s
2689264500
Refs #188
Task: MIL-012#7
Tirsvad merged commit f0d9d79f4c into main 2026-10-19 05:27:02 +02:00
Tirsvad deleted branch wireguard-vpn-action 2026-10-19 05:27:02 +02:00
Sign in to join this conversation.