diff --git a/.github/workflows/build_nupkg.yml b/.github/workflows/build_and_test.yml similarity index 71% rename from .github/workflows/build_nupkg.yml rename to .github/workflows/build_and_test.yml index e48929a4..8f7fec00 100644 --- a/.github/workflows/build_nupkg.yml +++ b/.github/workflows/build_and_test.yml @@ -1,4 +1,4 @@ -name: Nuget Pack +name: Build and Test on: push: @@ -18,29 +18,23 @@ jobs: with: dotnet-version: 9.0.x - - name: Restore dependencies - run: dotnet restore - - - name: Build library - run: dotnet build - - name: Run tests run: dotnet test - - name: Pack - run: dotnet pack + - name: Run publish script + run: ./publish-nix.sh -d - - name: Upload build + - name: Upload package uses: actions/upload-artifact@v4 with: name: 'Nuget Package' - path: 'SabreTools.Serialization/bin/Release/*.nupkg' + path: '*.nupkg' - name: Upload to rolling uses: ncipollo/release-action@v1.14.0 with: allowUpdates: True - artifacts: 'SabreTools.Serialization/bin/Release/*.nupkg' + artifacts: "*.nupkg,*.zip" body: 'Last built commit: ${{ github.sha }}' name: 'Rolling Release' prerelease: True diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml deleted file mode 100644 index 5dcab558..00000000 --- a/.github/workflows/build_test.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: Build InfoPrint - -on: - push: - branches: [ "main" ] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - project: [InfoPrint] - runtime: [win-x86, win-x64, win-arm64, linux-x64, linux-arm64, osx-x64] - framework: [net9.0] #[net20, net35, net40, net452, net472, net48, netcoreapp3.1, net5.0, net6.0, net7.0, net8.0, net9.0] - conf: [Debug] #[Release, Debug] - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0.x - - - name: Restore dependencies - run: dotnet restore - - - name: Build - run: dotnet publish ${{ matrix.project }}/${{ matrix.project }}.csproj -f ${{ matrix.framework }} -r ${{ matrix.runtime }} -c ${{ matrix.conf == 'Release' && 'Release -p:DebugType=None -p:DebugSymbols=false' || 'Debug'}} --self-contained true --version-suffix ${{ github.sha }} ${{ (startsWith(matrix.framework, 'net5') || startsWith(matrix.framework, 'net6') || startsWith(matrix.framework, 'net7') || startsWith(matrix.framework, 'net8') || startsWith(matrix.framework, 'net9')) && '-p:PublishSingleFile=true' || ''}} - - - name: Archive build - run: | - cd ${{ matrix.project }}/bin/Debug/${{ matrix.framework }}/${{ matrix.runtime }}/publish/ - zip -r ${{ github.workspace }}/${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_${{ matrix.conf }}.zip ./ - - - name: Upload build - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_${{ matrix.conf }} - path: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_${{ matrix.conf }}.zip - - - name: Upload to rolling - uses: ncipollo/release-action@v1.14.0 - with: - allowUpdates: True - artifacts: ${{ matrix.project }}_${{ matrix.framework }}_${{ matrix.runtime }}_${{ matrix.conf }}.zip - body: 'Last built commit: ${{ github.sha }}' - name: 'Rolling Release' - prerelease: True - replacesArtifacts: True - tag: "rolling" - updateOnlyUnreleased: True diff --git a/README.MD b/README.MD index 17d936d4..f9ba99b3 100644 --- a/README.MD +++ b/README.MD @@ -1,5 +1,7 @@ # SabreTools.Serialization +[![Build and Test](https://github.com/SabreTools/SabreTools.Serialization/actions/workflows/build_and_test.yml/badge.svg)](https://github.com/SabreTools/SabreTools.Serialization/actions/workflows/build_and_test.yml) + This library comprises of serializers that both read and write from files and streams to the dedicated models as well as convert to and from the common internal models. This library is partially used by the current parsing and writing code but none of the internal model serialization is used. Find the link to the Nuget package [here](https://www.nuget.org/packages/SabreTools.Serialization). diff --git a/publish-nix.sh b/publish-nix.sh index 03753bf7..31e4be28 100755 --- a/publish-nix.sh +++ b/publish-nix.sh @@ -10,13 +10,17 @@ # Optional parameters USE_ALL=false +INCLUDE_DEBUG=false NO_BUILD=false NO_ARCHIVE=false -while getopts "uba" OPTION; do +while getopts "udba" OPTION; do case $OPTION in u) USE_ALL=true ;; + d) + INCLUDE_DEBUG=true + ;; b) NO_BUILD=true ;; @@ -91,14 +95,14 @@ if [ $NO_BUILD = false ]; then # Only .NET 5 and above can publish to a single file if [[ $(echo ${SINGLE_FILE_CAPABLE[@]} | fgrep -w $FRAMEWORK) ]]; then - # Only include Debug if building all - if [ $USE_ALL = true ]; then + # Only include Debug if set + if [ $INCLUDE_DEBUG = true ]; then dotnet publish InfoPrint/InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true fi dotnet publish InfoPrint/InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false else - # Only include Debug if building all - if [ $USE_ALL = true ]; then + # Only include Debug if set + if [ $INCLUDE_DEBUG = true ]; then dotnet publish InfoPrint/InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT fi dotnet publish InfoPrint/InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false @@ -131,8 +135,8 @@ if [ $NO_ARCHIVE = false ]; then fi fi - # Only include Debug if building all - if [ $USE_ALL = true ]; then + # Only include Debug if set + if [ $INCLUDE_DEBUG = true ]; then cd $BUILD_FOLDER/InfoPrint/bin/Debug/${FRAMEWORK}/${RUNTIME}/publish/ zip -r $BUILD_FOLDER/InfoPrint_${FRAMEWORK}_${RUNTIME}_debug.zip . fi diff --git a/publish-win.ps1 b/publish-win.ps1 index 97650b05..a63d3a70 100644 --- a/publish-win.ps1 +++ b/publish-win.ps1 @@ -12,6 +12,10 @@ param( [Alias("UseAll")] [switch]$USE_ALL, + [Parameter(Mandatory = $false)] + [Alias("IncludeDebug")] + [switch]$INCLUDE_DEBUG, + [Parameter(Mandatory = $false)] [Alias("NoBuild")] [switch]$NO_BUILD, @@ -78,15 +82,15 @@ if (!$NO_BUILD.IsPresent) { # Only .NET 5 and above can publish to a single file if ($SINGLE_FILE_CAPABLE -contains $FRAMEWORK) { - # Only include Debug if building all - if ($USE_ALL.IsPresent) { + # Only include Debug if set + if ($INCLUDE_DEBUG.IsPresent) { dotnet publish InfoPrint\InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true } dotnet publish InfoPrint\InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false } else { - # Only include Debug if building all - if ($USE_ALL.IsPresent) { + # Only include Debug if set + if ($INCLUDE_DEBUG.IsPresent) { dotnet publish InfoPrint\InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Debug --self-contained true --version-suffix $COMMIT } dotnet publish InfoPrint\InfoPrint.csproj -f $FRAMEWORK -r $RUNTIME -c Release --self-contained true --version-suffix $COMMIT -p:DebugType=None -p:DebugSymbols=false @@ -115,8 +119,8 @@ if (!$NO_ARCHIVE.IsPresent) { continue } - # Only include Debug if building all - if ($USE_ALL.IsPresent) { + # Only include Debug if set + if ($INCLUDE_DEBUG.IsPresent) { Set-Location -Path $BUILD_FOLDER\InfoPrint\bin\Debug\${FRAMEWORK}\${RUNTIME}\publish\ 7z a -tzip $BUILD_FOLDER\InfoPrint_${FRAMEWORK}_${RUNTIME}_debug.zip * }