Skip to content

ci: replace SourceKnight with native GitHub Actions workflow - #8

Merged
Rushaway merged 1 commit into
masterfrom
chore/drop-sourceknight
Aug 17, 2026
Merged

Rushaway merged 1 commit into
masterfrom
chore/drop-sourceknight

Conversation

@Rushaway

Copy link
Copy Markdown
Member

Summary

This repo is a monorepo (Go server + SourcePawn client plugin + Gatsby docs). Only the SourceMod plugin build (the client job) used SourceKnight (maxime1907/action-sourceknight); the server and doc jobs already used native GitHub Actions and are untouched aside from a version bump on actions/checkout for consistency.

  • Replaced .github/workflows/build.yml with .github/workflows/ci.yml.
  • Replaced the SourceKnight-based plugin build with a native rumblefrog/setup-sp + spcomp build (SourceMod 1.12, matching sourceknight.yaml).
  • Kept the server (Go) and doc (Gatsby) jobs' logic unchanged.
  • Applied the validated tag/release job fixes from the sm-plugin-AdminRoom template migration:
    • tag job now checks out the repo before running rickstaa/action-create-tag (it runs local git commands and fails without a checkout).
    • release job's if: explicitly checks needs.tag.result == 'success' || needs.tag.result == 'skipped' combined with always(), so release doesn't silently skip on a direct tag push (where tag is skipped).
    • deps directory is created up front in the dependency-install step.
  • Deleted sourceknight.yaml and removed the now-unused # Sourceknight / .sourceknight entries from .gitignore (the *.smx ignore rule was already present elsewhere in the file, so it was kept).
  • No common/ folder exists in this repo, so no "copy common into package" step was added.

Plugins compiled

Plugin (target) Source file Output
Source-Chat-Relay client/Source-Chat-Relay.sp addons/sourcemod/plugins/Source-Chat-Relay.smx

Dependencies cloned

Name Repo Real include path used
ext-socket https://github.com/nefarius/sm-ext-socket socket.inc at repo root
multicolors https://github.com/Bara/Multi-Colors addons/sourcemod/scripting/include/ (contains multicolors.inc and multicolors/ subfolder)
bytebuffer https://github.com/rumblefrog/SM-ByteBuffer-Inc bytebuffer.inc and bytebuffer_es.inc at repo root

(The sourcemod tar dependency in sourceknight.yaml is handled by rumblefrog/setup-sp@v1.3.1 with version: "1.12.x", same as before.)

Local validation performed

Actually compiled the plugin locally with a SourceMod 1.12 spcomp binary, replicating exactly what the new CI build step does:

  1. Cloned all three git dependencies above with --depth=1 into deps/.
  2. Copied their real .inc files into addons/sourcemod/scripting/include/ per the paths in the table above.
  3. Ran spcomp -i include -i ../addons/sourcemod/scripting/include -o ../addons/sourcemod/plugins/Source-Chat-Relay.smx Source-Chat-Relay.sp from client/.

Result: compiled successfully with no errors (Source-Chat-Relay.smx, ~30KB output, "Code size: 53116 bytes").

Manual verification needed

  • The server (Go/Node build) and doc (Gatsby) jobs were not modified in substance (only actions/checkout bumped to v7 for consistency) since they don't use SourceKnight — please confirm these still build correctly, as they weren't re-validated locally as part of this SourceKnight-focused migration.
  • The release job's tar packaging (tar -czf ... Plugin Server) assumes both the build (Plugin) and server (Server) artifacts are present, matching the pre-existing behavior — worth a real CI run to confirm the multi-artifact release still packages correctly end-to-end.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Rushaway
Rushaway merged commit b59764c into master Aug 17, 2026
10 checks passed
@Rushaway
Rushaway deleted the chore/drop-sourceknight branch August 17, 2026 06:48
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.

1 participant