diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..fefaa13a7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,30 @@ +name: Release source tarball +on: + push: + tags: + - '*' + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Generate git hash and tarball + run: | + sudo apt update + sudo apt install -y ninja-build cmake g++ libsdl2-dev zlib1g-dev + cmake --preset linux + cmake --build --preset linux -t get_git_hash + cmake --build --preset linux -t package_source + + - name: Release + uses: ncipollo/release-action@v1.14.0 + with: + artifacts: "builds/linux/Descent3-*-Source.tar.xz" + draft: true + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a26bc95b..5c98edd98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,3 +253,17 @@ add_subdirectory(tools) add_subdirectory(netcon) add_subdirectory(netgames) add_subdirectory(scripts) + +# Packaging stuff +set(CPACK_SOURCE_GENERATOR "TXZ") +set(CPACK_SOURCE_IGNORE_FILES + ".git/" + ".github/" + ".idea" + build[s]/ + cmake-build-* + ".*~$" +) +set(CPACK_VERBATIM_VARIABLES YES) +include(CPack) +