From 3a4cfa7a287e3038083b9cb65e40cb7c232f9a71 Mon Sep 17 00:00:00 2001 From: Mike Oliphant Date: Fri, 22 May 2026 16:05:23 -0700 Subject: [PATCH] First shot at creating a release with ModelTest included --- .github/workflows/release.yml | 150 ++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..77baa30 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,150 @@ +name: Release + +on: + workflow_dispatch: + +env: + BUILD_TYPE: Release + +jobs: + create_release: + name: Create release + runs-on: ubuntu-latest + outputs: + upload_url: ${{steps.create_release.outputs.upload_url}} + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + with: + draft: true + tag_name: ${{github.ref}} + release_name: Release ${{github.ref}} + + build-linux-x64: + name: Build Linux x64 + needs: create_release + strategy: + matrix: + native_arch: [x86-64, x86-64-v3] + runs-on: ubuntu-latest + env: + ARCHIVE_NAME: model_test_linux_${{ matrix.native_arch }}.tgz + steps: + - uses: actions/checkout@v3.3.0 + with: + submodules: recursive + + - name: Build + working-directory: ${{github.workspace}}/build + env: + CXX: clang++ + CXXFLAGS: "-Wall -O3 -march=${{ matrix.native_arch }}" + run: | + cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON + cmake --build . --config $BUILD_TYPE -j4 + + - name: Add Archive + working-directory: ${{github.workspace}}/build + run: | + mkdir ModelTest + cp Utils/ModelTest/ModelTest ModelTest + cp -r Utils/Models ModelTest + tar -czf ${{ env.ARCHIVE_NAME }} ModelTest + + - name: Upload Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ./build/${{ env.ARCHIVE_NAME }} + asset_name: ${{ env.ARCHIVE_NAME }} + asset_content_type: application/tgz + + build-rpi: + name: Build Raspberry Pi + needs: create_release + strategy: + matrix: + native_arch: [rpi4, rpi5] + runs-on: ubuntu-latest + container: + image: ghcr.io/tttapa/docker-arm-cross-toolchain:aarch64-rpi3-linux-gnu-gcc12 + env: + ARCHIVE_NAME: model_test_${{ matrix.native_arch }}.tgz + steps: + - uses: actions/checkout@v3.3.0 + with: + submodules: recursive + + - name: Build + working-directory: ${{github.workspace}}/build + run: | + cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON + cmake --build . --config $BUILD_TYPE -j4 + + - name: Add Archive + working-directory: ${{github.workspace}}/build + run: | + mkdir ModelTest + cp Utils/ModelTest/ModelTest ModelTest + cp -r Utils/Models ModelTest + tar -czf ${{ env.ARCHIVE_NAME }} ModelTest + + - name: Upload Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ./build/${{ env.ARCHIVE_NAME }} + asset_name: ${{ env.ARCHIVE_NAME }} + asset_content_type: application/tgz + + build-windows: + name: Build Windows + needs: create_release + strategy: + matrix: + native_arch: [x86-64, x86-64-v3] + runs-on: windows-latest + env: + ARCHIVE_NAME: model_test_win_${{ matrix.native_arch }}.zip + steps: + - uses: actions/checkout@v3.3.0 + with: + submodules: recursive + + - name: Build + working-directory: ${{github.workspace}}/build + env: + CXXFLAGS: "/O2 -march=${{ matrix.native_arch }}" + run: | + cmake.exe -G "Visual Studio 17 2022" -A x64 -T ClangCL -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON .. + cmake --build . --config=release -j4 + + - name: Add Archive + working-directory: ${{github.workspace}}/build + run: | + mkdir ModelTest + cp Utils/ModelTest/ModelTest.exe ModelTest + cp -r Utils/Models ModelTest + Compress-Archive -Path ModelTest -Destination ${{ env.ARCHIVE_NAME }} + + - name: Upload Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: ./${{ env.ARCHIVE_NAME }} + asset_name: ${{ env.ARCHIVE_NAME }} + asset_content_type: application/zip