semantic-release-steam
v2.1.3
Published
semantic-release plugin that publishes a Steam Workshop item from a built mod directory.
Downloads
241
Maintainers
Readme
semantic-release-steam
Use semantic-release to publish built mod directories to existing Steam Workshop items. The plugin uploads through SteamCMD and converts each mod's README.template.md to Steam BBCode with @steamdown/core.
Install
npm install --save-dev semantic-release-steamYour release runner needs Node.js 20+, SteamCMD, and rsync.
Configure
Add the plugin to release.config.mjs:
export default {
branches: ['main'],
plugins: [
[
'semantic-release-steam',
{
appId: '294100',
branchTargets: { main: 'stable' },
mods: [
{
name: 'My Mod',
path: 'dist/MyMod',
workshopIds: { stable: '1234567890' },
},
],
},
],
],
};branchTargets maps each release branch to a Workshop target. Each mod's workshopIds maps those targets to existing Steam Workshop item IDs.
Set these variables in your release environment:
STEAM_USERNAMESTEAM_CONFIG_VDForSTEAM_CONFIG_VDF_B64STEAMCMD_PATHif SteamCMD isn't at~/steamcmd/steamcmd.sh
SteamCMD must have a saved login in its config/config.vdf. See the SteamCMD Workshop upload guide for the item setup and VDF format.
Put README.template.md in each mod directory. Add .steamignore there if you need to exclude files from the upload.
The plugin updates Workshop items. Create each item before your first release, then add its ID to workshopIds.
Documentation
- Plugin option reference
- semantic-release configuration
- GitHub Actions setup
- Steam Workshop implementation guide
