Fix .pti compression assuming data length included the header, which … #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
branches: | |
- '*' | |
tags: | |
- 'v*.*' | |
- 'snapshot-*' | |
- 'tptlibsdev-*' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
prepare: | |
runs-on: ubuntu-24.04 | |
outputs: | |
do_release: ${{ steps.prepare.outputs.do_release }} | |
build_matrix: ${{ steps.prepare.outputs.build_matrix }} | |
publish_matrix: ${{ steps.prepare.outputs.publish_matrix }} | |
release_type: ${{ steps.prepare.outputs.release_type }} | |
release_name: ${{ steps.prepare.outputs.release_name }} | |
mod_id: ${{ steps.prepare.outputs.mod_id }} | |
app_name: ${{ steps.prepare.outputs.app_name }} | |
app_comment: ${{ steps.prepare.outputs.app_comment }} | |
app_exe: ${{ steps.prepare.outputs.app_exe }} | |
app_id: ${{ steps.prepare.outputs.app_id }} | |
app_data: ${{ steps.prepare.outputs.app_data }} | |
app_vendor: ${{ steps.prepare.outputs.app_vendor }} | |
do_publish: ${{ steps.prepare.outputs.do_publish }} | |
steps: | |
- run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- run: python -m pip install meson ninja | |
- id: prepare | |
run: python ./.github/prepare.py | |
env: | |
PUBLISH_HOSTPORT: ${{ vars.STARCATCHER_PUBLISH_HOSTPORT }} | |
GITHUB_REF: ${{ github.ref }} | |
- if: steps.prepare.outputs.do_publish == 'yes' | |
run: bash -c './.github/starcatcher-publish.sh' | |
env: | |
PUBLISH_HOSTPORT: ${{ vars.STARCATCHER_PUBLISH_HOSTPORT }} | |
PUBLISH_USERNAME: ${{ vars.STARCATCHER_PUBLISH_USERNAME }} | |
PUBLISH_PASSWORD: ${{ secrets.STARCATCHER_PUBLISH_PASSWORD }} | |
PUBLISH_ACCESSCHECK: yes | |
- if: steps.prepare.outputs.do_release == 'yes' | |
id: create_release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_NAME: ${{ steps.prepare.outputs.release_name }} | |
run: bash -c './.github/create-release.sh' | |
build: | |
runs-on: ${{ matrix.runs_on }} | |
name: ${{ matrix.job_name }} | |
needs: [prepare] | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.prepare.outputs.build_matrix) }} | |
defaults: | |
run: | |
shell: ${{ matrix.shell }} | |
steps: | |
- if: matrix.force_msys2_bash == 'yes' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
path-type: strict | |
cache: true | |
# this list doesn't have to mirror the one in build.sh perfectly | |
# but the packages listed here get cached properly and take less time to install | |
install: >- | |
git | |
curl | |
mingw-w64-ucrt-x86_64-gcc | |
mingw-w64-ucrt-x86_64-pkgconf | |
mingw-w64-ucrt-x86_64-bzip2 | |
mingw-w64-ucrt-x86_64-luajit | |
mingw-w64-ucrt-x86_64-jsoncpp | |
mingw-w64-ucrt-x86_64-curl | |
mingw-w64-ucrt-x86_64-SDL2 | |
mingw-w64-ucrt-x86_64-libpng | |
mingw-w64-ucrt-x86_64-meson | |
mingw-w64-ucrt-x86_64-python | |
mingw-w64-ucrt-x86_64-python-pip | |
mingw-w64-ucrt-x86_64-fftw | |
mingw-w64-ucrt-x86_64-cmake | |
mingw-w64-ucrt-x86_64-7zip | |
mingw-w64-ucrt-x86_64-jq | |
patch | |
- run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- if: matrix.force_msys2_bash != 'yes' | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- if: matrix.force_msys2_bash != 'yes' | |
run: python -m pip install meson ninja | |
- if: matrix.bsh_build_platform == 'darwin' | |
run: brew install bash coreutils | |
- run: bash -c './.github/build.sh' | |
env: | |
BSH_HOST_ARCH: ${{ matrix.bsh_host_arch }} | |
BSH_HOST_PLATFORM: ${{ matrix.bsh_host_platform }} | |
BSH_HOST_LIBC: ${{ matrix.bsh_host_libc }} | |
BSH_STATIC_DYNAMIC: ${{ matrix.bsh_static_dynamic }} | |
BSH_BUILD_PLATFORM: ${{ matrix.bsh_build_platform }} | |
BSH_DEBUG_RELEASE: ${{ matrix.bsh_debug_release }} | |
RELEASE_NAME: ${{ needs.prepare.outputs.release_name }} | |
RELEASE_TYPE: ${{ needs.prepare.outputs.release_type }} | |
MOD_ID: ${{ needs.prepare.outputs.mod_id }} | |
APP_NAME: ${{ needs.prepare.outputs.app_name }} | |
APP_COMMENT: ${{ needs.prepare.outputs.app_comment }} | |
APP_EXE: ${{ needs.prepare.outputs.app_exe }} | |
APP_ID: ${{ needs.prepare.outputs.app_id }} | |
APP_DATA: ${{ needs.prepare.outputs.app_data }} | |
APP_VENDOR: ${{ needs.prepare.outputs.app_vendor }} | |
SEPARATE_DEBUG: ${{ matrix.separate_debug }} | |
PACKAGE_MODE: ${{ matrix.package_mode }} | |
ASSET_PATH: ${{ matrix.asset_path }} | |
DEBUG_ASSET_PATH: ${{ matrix.debug_asset_path }} | |
- if: needs.prepare.outputs.do_release == 'yes' && matrix.publish == 'yes' # TODO-NTL: ship licenses | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ASSET_PATH: build/${{ matrix.asset_path }} | |
ASSET_NAME: ${{ matrix.asset_name }} | |
run: bash -c './.github/upload-release-asset.sh' | |
- if: needs.prepare.outputs.do_release == 'yes' && matrix.publish == 'yes' && matrix.separate_debug == 'yes' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ASSET_PATH: build/${{ matrix.debug_asset_path }} | |
ASSET_NAME: ${{ matrix.debug_asset_name }} | |
run: bash -c './.github/upload-release-asset.sh' | |
- uses: actions/upload-artifact@v4 | |
if: matrix.artifact == 'yes' | |
with: | |
path: build/${{ matrix.asset_path }} | |
name: ${{ matrix.asset_name }} | |
- uses: actions/upload-artifact@v4 | |
if: matrix.artifact == 'yes' && matrix.separate_debug == 'yes' | |
with: | |
path: build/${{ matrix.debug_asset_path }} | |
name: ${{ matrix.debug_asset_name }} | |
publish: | |
runs-on: ubuntu-24.04 | |
needs: [build, prepare] | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.prepare.outputs.publish_matrix) }} | |
if: needs.prepare.outputs.do_publish == 'yes' | |
steps: | |
- run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: ${{ matrix.asset_name }} | |
- run: mv ${{ matrix.asset_path }} ${{ matrix.starcatcher_name }} | |
- run: bash -c './.github/starcatcher-publish.sh' | |
env: | |
PUBLISH_HOSTPORT: ${{ vars.STARCATCHER_PUBLISH_HOSTPORT }} | |
PUBLISH_USERNAME: ${{ vars.STARCATCHER_PUBLISH_USERNAME }} | |
PUBLISH_PASSWORD: ${{ secrets.STARCATCHER_PUBLISH_PASSWORD }} | |
PUBLISH_DIRECTORY: ${{ vars.STARCATCHER_PUBLISH_DIRECTORY }} | |
PUBLISH_FILENAME: ${{ matrix.starcatcher_name }} | |
release: | |
runs-on: ubuntu-24.04 | |
needs: [build, publish, prepare] | |
if: needs.prepare.outputs.do_publish == 'yes' | |
steps: | |
- run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- run: ./.github/starcatcher-release.sh | |
env: | |
RELEASE_NAME: ${{ needs.prepare.outputs.release_name }} | |
RELEASE_TYPE: ${{ needs.prepare.outputs.release_type }} | |
MOD_ID: ${{ needs.prepare.outputs.mod_id }} | |
GITHUB_SHA: ${{ github.sha }} |