Skip to content

Commit

Permalink
Use HEMTT v1 build system (#15)
Browse files Browse the repository at this point in the history
* Use HEMTT v1 build system

* Disable CBA functions in workspace

* YML files have 2 space indent
  • Loading branch information
Timi007 authored Dec 26, 2023
1 parent 9f03e35 commit ccb5dff
Show file tree
Hide file tree
Showing 21 changed files with 351 additions and 1,773 deletions.
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2
39 changes: 39 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Based on the drafter of ACRE (https://github.com/IDI-Systems/acre2/blob/master/.github/release-drafter.yml)

commitish: 'release'

name-template: 'Version $NEXT_PATCH_VERSION'
tag-template: 'v$NEXT_PATCH_VERSION'

categories:
- title: '**ADDED:**'
labels:
- 'enhancement'
- title: '**FIXED:**'
labels:
- 'bug fix'
- title: '**IMPROVED:**'
labels:
- 'optimization'
- title: '**CHANGED:**'
labels:
- 'cleanup'
- title: '**TRANSLATIONS:**'
labels:
- 'localization'

exclude-labels:
- 'ignore changelog'
- 'invalid'
- 'tools'

change-template: '- $TITLE (#$NUMBER) **$AUTHOR**'
template: |
## Change Log Summary
$CHANGES
replacers:
# Category titles
- search: '/\#\# (\*\*(ADDED|FIXED|IMPROVED|CHANGED|TRANSLATIONS):\*\*)/g'
replace: '$1'
23 changes: 23 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
changelog:
exclude:
labels:
- 'ignore changelog'
- 'invalid'
- 'tools'

categories:
- title: '**ADDED:**'
labels:
- 'enhancement'
- title: '**FIXED:**'
labels:
- 'bug fix'
- title: '**IMPROVED:**'
labels:
- 'optimization'
- title: '**CHANGED:**'
labels:
- 'cleanup'
- title: '**TRANSLATIONS:**'
labels:
- 'localization'
14 changes: 13 additions & 1 deletion .github/workflows/arma.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@master
uses: actions/checkout@v4
- name: Validate SQF
run: python3 tools/sqf_validator.py
- name: Validate Config
run: python3 tools/config_style_checker.py
- name: Check for BOM
uses: arma-actions/bom-check@v1

build:
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Setup HEMTT
uses: arma-actions/hemtt@v1
- name: Run HEMTT build
run: hemtt build
103 changes: 103 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Based on the workflow of ACRE (https://github.com/IDI-Systems/acre2/blob/master/.github/workflows/release.yml)

name: Release

on:
push:
branches:
- release

jobs:
build:
if: github.repository == 'Metis-Team/mts_nature' && ! contains(github.event.head_commit.message, '[ci skip]')
runs-on: windows-latest
outputs:
MOD_NAME: ${{ env.MOD_NAME }}
VERSION: ${{ env.VERSION }}
VERSION_SHORT: ${{ env.VERSION_SHORT }}
SHA_SHORT: ${{ env.SHA_SHORT }}
steps:
- name: Checkout the source code
uses: actions/checkout@v4

- name: Setup HEMTT
uses: arma-actions/hemtt@v1

- name: Setup Tools
run: |
C:\msys64\usr\bin\wget.exe ${{ secrets.FTP_SERVER }}/arma_tools.zip --user ${{ secrets.FTP_USERNAME }} --password ${{ secrets.FTP_PASSWORD }} -q
Expand-Archive arma_tools.zip -DestinationPath ci
echo "Check Binarize: $(Test-Path .\\ci\\binarize\\binarize_x64.exe)"
hemtt --version
echo "Install Binarize dependencies"
cp .\ci\binarize\X3DAudio1_7.dll,.\ci\binarize\XAPOFX1_5.dll C:\Windows\System32\
echo "::group::Set Binarize registry path"
New-Item "HKCU:\\Software\\Bohemia Interactive\\binarize" -Force | New-ItemProperty -Name path -Value "${{ github.workspace }}\ci\binarize"
echo "::endgroup::"
echo "Set env variables"
echo "MOD_NAME=Metis_Nature" >> $env:GITHUB_ENV
$version = Select-String -Path "addons\\nature\\script_version.hpp" -Pattern '#define (MAJOR|MINOR|PATCHLVL|BUILD) (\d+)' | ForEach-Object { $_.Matches.Groups[2].Value } | Join-String -Separator "."
$version_short = (Select-String -InputObject $version -Pattern '^\d+\.\d+\.\d+').Matches.Value
echo "VERSION=$version" >> $env:GITHUB_ENV
echo "VERSION_SHORT=$version_short" >> $env:GITHUB_ENV
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $env:GITHUB_ENV
- name: Test Binarize
run: |
echo "::group::Run Binarize without arguments (look for missing DLLs)"
./ci/binarize/binarize_x64.exe || true # binarize exits with 1 if no file given
echo "::endgroup::"
shell: bash # outputs missing dll information

- name: Build (HEMTT)
run: |
echo "${{ env.MOD_NAME }} v${{ env.VERSION }} (${{ env.SHA_SHORT }})"
hemtt release --no-archive
env:
BIOUTPUT: 1 # output binarize log

- name: Rename build folder
run: mv .hemttout/release .hemttout/@${{ env.MOD_NAME }}

- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.MOD_NAME }}
path: .hemttout/@*
retention-days: 1


publish-release:
needs: build
if: github.ref == 'refs/heads/release'
runs-on: ubuntu-latest
steps:
- name: Download Artifacts
uses: actions/download-artifact@v3

- name: Prepare Archives
run: |
mv ${{ needs.build.outputs.MOD_NAME }}/* .
echo "::group::Archive build"
zip -r ${{ needs.build.outputs.MOD_NAME }}_${{ needs.build.outputs.VERSION_SHORT }}.zip @${{ needs.build.outputs.MOD_NAME }}
echo "::endgroup::"
- name: Prepare GitHub Release
id: release_drafter
uses: release-drafter/release-drafter@v5
with:
name: Version ${{ needs.build.outputs.VERSION_SHORT }}
tag: v${{ needs.build.outputs.VERSION }}
version: ${{ needs.build.outputs.VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload mod archive to GitHub Release
uses: shogo82148/actions-upload-release-asset@v1.7.2
with:
upload_url: ${{ steps.release_drafter.outputs.upload_url }}
asset_path: ./${{ needs.build.outputs.MOD_NAME }}_${{ needs.build.outputs.VERSION_SHORT }}.zip
asset_name: ${{ needs.build.outputs.MOD_NAME }}_${{ needs.build.outputs.VERSION_SHORT }}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ texHeaders.bin
*.swo
*.biprivatekey
Thumbs.db
*.sqfc
*.exe

## Added by HEMTT
hemtt
hemtt.exe
releases/*
keys/*
.hemtt/local
.hemttout/
####
14 changes: 14 additions & 0 deletions .hemtt/hooks/post_release/01_rename_zip.rhai
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
let releases = HEMTT_RFS.join("releases");

let src = releases.join(HEMTT.project().prefix() + "-" + HEMTT.project().version().to_string() + ".zip");

if (src.exists()) {
let dst = releases.join(HEMTT.project().name() + "_" + HEMTT.project().version().to_string_short() + ".zip");

print("Moving archive to " + dst);
if (!src.move(dst)) {
fatal("Failed to rename " + src + " to " + dst);
}
} else {
warn("Cannot rename archive. File " + src + " does not exist!");
}
36 changes: 36 additions & 0 deletions .hemtt/project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name = "Metis_Nature"
mainprefix = "z"
prefix = "mts"
author = "Timi007"

[files]
include = [
"mod.cpp",
"README.md",
"LICENSE",
"mts_picture.paa",
"mts_nature_logo_small.paa",
"mts_nature_logo_over_small.paa",
"meta.cpp"
]

[signing]
authority = "mts_nature"

[version]
path = "addons/nature/script_version.hpp"
git_hash = 0

[asc]
enabled = true
exclude = [
"/initsettings.sqf",
"/initkeybinds.sqf",
"/xeh_prep.sqf",
]

[hemtt.config]
preset = "Hemtt"

[hemtt.release]
folder = "Metis_Nature"
30 changes: 0 additions & 30 deletions .hemtt/template/scripts/get_version.lua

This file was deleted.

7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"blackfisch.sqf-language",
"editorconfig.editorconfig",
"bux578.vscode-openlastrpt"
]
}
31 changes: 31 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**/*.pbo": true,
"**/*.exe": true,
"**/keys": true,
"**/release": true,
"**/__pycache__": true,
},
"files.associations": {
"**/*.hpp": "ext",
// "**/*.hpp": "cpp",
"**/*.cpp": "ext",
"**/XEH_PREP.hpp": "sqf",
"*.rpt": "log",
"init*.hpp": "sqf",
},
"search.exclude": {
"**/venv": true,
},
"explorer.autoRevealExclude": {
"**/venv": true
},
"sqf.enableACE3": false,
"sqf.enableCBA": false,
}
27 changes: 27 additions & 0 deletions .vscode/sqf.code-snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"SQF Function header": {
"description": "SQF Function header",
"prefix": "header",
"body": [
"#include \"script_component.hpp\"",
"/**",
" * Author: ${1:Author}",
" *",
" * Description:",
" * ${2:Description}",
" *",
" * Parameter(s):",
" * ${3:0: TYPE - Parameter description}",
" *",
" * Returns:",
" * ${4:TYPE - Description}",
" *",
" * Example:",
" * _this call mts_${TM_DIRECTORY/(.*)addons\\\\(.*)\\\\functions(.*)/$2/}_${TM_FILENAME_BASE}",
" *",
" */",
"",
"params [];"
],
}
}
26 changes: 26 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Debug",
"detail": "Build Arma addon with HEMTT in debug mode.",
"type": "process",
"command": "hemtt",
"args": ["build"],
"group": "build",
"presentation": {
"close": true,
"reveal": "always",
"showReuseMessage": false
}
},
{
"label": "Build Release",
"detail": "Build Arma addon with HEMTT for release.",
"type": "process",
"command": "hemtt",
"args": ["release"],
"group": "build"
}
]
}
2 changes: 1 addition & 1 deletion build.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
@echo off
hemtt.exe build
hemtt build
pause
2 changes: 1 addition & 1 deletion build_release.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
@echo off
hemtt.exe build --release --time -f
hemtt release
pause
Loading

0 comments on commit ccb5dff

Please sign in to comment.