Update auto versioning
This commit is contained in:
@@ -7,8 +7,27 @@ on:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
version:
|
||||
name: Version
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.compute.outputs.version }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Compute version
|
||||
id: compute
|
||||
run: |
|
||||
base_version=$(grep -oP 'SMEXT_CONF_VERSION\s+"\K[^"]+' Extension/sdk/smsdk_config.h)
|
||||
build_number=$(git rev-list --count HEAD)
|
||||
echo "version=${base_version}.${build_number}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
build:
|
||||
name: sm${{ matrix.sm.label }}-${{ matrix.target.os_name }}-${{ matrix.target.arch }}
|
||||
needs: version
|
||||
runs-on: ${{ matrix.target.os }}
|
||||
container: ${{ matrix.target.container }}
|
||||
strategy:
|
||||
@@ -78,6 +97,7 @@ jobs:
|
||||
--mms-path ../mmsource \
|
||||
--steamworks-path ../SteamworksSDK \
|
||||
--target ${{ matrix.target.arch }} \
|
||||
--version "${{ needs.version.outputs.version }}" \
|
||||
--enable-optimize
|
||||
ambuild
|
||||
|
||||
@@ -91,6 +111,7 @@ jobs:
|
||||
--mms-path ../mmsource \
|
||||
--steamworks-path ../SteamworksSDK \
|
||||
--target ${{ matrix.target.arch }} \
|
||||
--version "${{ needs.version.outputs.version }}" \
|
||||
--enable-optimize
|
||||
ambuild
|
||||
|
||||
@@ -138,7 +159,7 @@ jobs:
|
||||
|
||||
release:
|
||||
name: Release
|
||||
needs: build
|
||||
needs: [version, build]
|
||||
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
@@ -157,9 +178,7 @@ jobs:
|
||||
- name: Assemble packages
|
||||
id: package
|
||||
run: |
|
||||
base_version=$(grep -oP 'SMEXT_CONF_VERSION\s+"\K[^"]+' Extension/sdk/smsdk_config.h)
|
||||
build_number=$(git rev-list --count HEAD)
|
||||
version="${base_version}-git${build_number}"
|
||||
version="${{ needs.version.outputs.version }}"
|
||||
echo "version=${version}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# One package per SourceMod version per OS: Windows as .zip, Linux as
|
||||
|
||||
@@ -69,6 +69,12 @@ binary = SteamWorks.HL2Config(project, builder.cxx, 'SteamWorks.ext')
|
||||
# The Steam API headers all come from the SteamWorks SDK; the extension is built
|
||||
# with META_NO_HL2SDK, so no HL2SDK is required.
|
||||
binary.compiler.defines += ['META_NO_HL2SDK', 'SOURCEMOD_BUILD', 'VERSION_SAFE_STEAM_API_INTERFACES']
|
||||
|
||||
# Let CI bake the generated release version into the binary. The value is passed
|
||||
# as an unquoted token and stringized in smsdk_config.h, avoiding shell-quoting
|
||||
# differences between MSVC and gcc/clang.
|
||||
if builder.options.version:
|
||||
binary.compiler.defines += ['SMEXT_CONF_VERSION_OVERRIDE={0}'.format(builder.options.version)]
|
||||
binary.compiler.cxxincludes += [os.path.join(SteamWorks.steamworks_root, 'public', 'steam')]
|
||||
binary.compiler.cxxincludes += [os.path.join(SteamWorks.sm_root, 'public', 'safetyhook', 'include')]
|
||||
|
||||
|
||||
@@ -40,7 +40,18 @@
|
||||
/* Basic information exposed publicly */
|
||||
#define SMEXT_CONF_NAME "SteamWorks Extension"
|
||||
#define SMEXT_CONF_DESCRIPTION "Exposes SteamWorks functions to Developers"
|
||||
#define SMEXT_CONF_VERSION "1.2.3"
|
||||
/* The literal below is the MAJOR.MINOR base and the version used by local builds.
|
||||
CI turns it into a full MAJOR.MINOR.PATCH release version by defining
|
||||
SMEXT_CONF_VERSION_OVERRIDE at build time as an unquoted token (e.g. 1.2.158,
|
||||
where the patch is the commit count); it is stringized here so no cross-platform
|
||||
shell quoting is required. Bump the MAJOR/MINOR here by hand. */
|
||||
#if defined(SMEXT_CONF_VERSION_OVERRIDE)
|
||||
#define SMEXT_CONF_VERSION_STR_(x) #x
|
||||
#define SMEXT_CONF_VERSION_STR(x) SMEXT_CONF_VERSION_STR_(x)
|
||||
#define SMEXT_CONF_VERSION SMEXT_CONF_VERSION_STR(SMEXT_CONF_VERSION_OVERRIDE)
|
||||
#else
|
||||
#define SMEXT_CONF_VERSION "1.2"
|
||||
#endif
|
||||
#define SMEXT_CONF_AUTHOR "Kyle Sanderson, AlliedModders"
|
||||
#define SMEXT_CONF_URL "https://github.com/alliedmodders/SM-SteamWorks"
|
||||
#define SMEXT_CONF_LOGTAG "STEAMWORKS"
|
||||
|
||||
@@ -30,4 +30,6 @@ run.options.add_argument('--enable-debug', action='store_const', const='1', dest
|
||||
run.options.add_argument('--enable-optimize', action='store_const', const='1', dest='opt',
|
||||
help='Enable optimization')
|
||||
run.options.add_argument('--target', default=None, help='Override the default build target')
|
||||
run.options.add_argument('--version', type=str, dest='version', default=None,
|
||||
help='Override the version string baked into the binary (defaults to the literal in smsdk_config.h)')
|
||||
run.Configure()
|
||||
|
||||
Reference in New Issue
Block a user