feat: initialize Tailscale GitHub Action using typescript #185
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.
This pull request refactors the Tailscale GitHub Action to transition from a composite action to a Node.js-based implementation. The changes simplify the workflow, improve maintainability, and introduce new features for better customization and cleanup. Key changes include the removal of the composite action logic, the addition of a TypeScript-based implementation, and the introduction of post-action cleanup.
Transition to Node.js-based Action:
action.yml
: Migrated from a composite action to a Node.js-based action usingnode20
. The main entry point is nowdist/index.js
, withdist/post/index.js
handling post-action cleanup.package.json
: Added a Node.js project setup with scripts for building, formatting, linting, and testing. Dependencies for GitHub Actions and development tooling (e.g., TypeScript, Jest, ESLint) were introduced.TypeScript Implementation:
src/interface.ts
: Defined TypeScript interfaces and enums for input validation, OS detection, caching, and Tailscale-specific configurations. This improves type safety and code clarity.Post-Action Cleanup:
src/post.ts
: Implemented a post-action cleanup process to disconnect from Tailscale, log out, and stop the Tailscale daemon (except on Windows). This ensures proper resource cleanup after the action completes.Fix #174