Repository navigation
zsav: report progress once per compressed block, not per row #458
This file contains hidden or 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, pull_request ] | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| compiler: [ clang, gcc, gcc-9, gcc-10, gcc-11, gcc-12 ] | |
| steps: | |
| - name: Add repository | |
| run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" | |
| - name: Install packages | |
| run: sudo apt install gcc-9 gcc-10 gcc-11 gcc-12 | |
| - uses: actions/checkout@v6 | |
| - name: Autoconf | |
| run: autoreconf -i -f | |
| - name: Configure | |
| run: ./configure | |
| env: | |
| CC: ${{ matrix.compiler }} | |
| - name: Make | |
| run: make | |
| - name: Run tests | |
| id: make-check | |
| run: make check | |
| continue-on-error: true | |
| - name: Upload test log | |
| if: steps.make-check.outcome == 'failure' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-suite-log-linux-${{ matrix.compiler }} | |
| path: test-suite.log | |
| retention-days: 5 | |
| - name: Generate corpus | |
| run: make generate_corpus | |
| - name: Fail if tests failed | |
| if: steps.make-check.outcome == 'failure' | |
| run: exit 1 | |
| macos: | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| compiler: [ clang, gcc ] | |
| steps: | |
| - name: Install packages | |
| run: brew install automake libtool | |
| - uses: actions/checkout@v6 | |
| - name: Autoconf | |
| run: autoreconf -i -f | |
| - name: Configure | |
| run: ./configure | |
| env: | |
| CC: ${{ matrix.compiler }} | |
| - name: Make | |
| run: make | |
| - name: Run tests | |
| id: make-check | |
| run: make check | |
| continue-on-error: true | |
| - name: Upload test log | |
| if: steps.make-check.outcome == 'failure' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-suite-log-macos-${{ matrix.compiler }} | |
| path: test-suite.log | |
| retention-days: 5 | |
| - name: Generate corpus | |
| run: make generate_corpus | |
| - name: Fail if tests failed | |
| if: steps.make-check.outcome == 'failure' | |
| run: exit 1 | |
| windows_msys: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - msystem: MSYS | |
| packages: autotools base-devel gcc libiconv-devel zlib-devel | |
| - msystem: MINGW64 | |
| packages: autotools base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-libiconv mingw-w64-x86_64-zlib | |
| - msystem: UCRT64 | |
| packages: autotools base-devel mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-libiconv mingw-w64-ucrt-x86_64-zlib | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{ matrix.msystem }} | |
| update: true | |
| install: ${{ matrix.packages }} | |
| - uses: actions/checkout@v6 | |
| - name: Autoconf | |
| run: autoreconf -i -f | |
| - name: Configure | |
| run: ./configure | |
| - name: Make | |
| run: make | |
| - name: Test | |
| id: make-check | |
| run: make check | |
| continue-on-error: true | |
| - name: Upload test log | |
| if: steps.make-check.outcome == 'failure' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-suite-log-windows-${{ matrix.msystem }} | |
| path: test-suite.log | |
| retention-days: 5 | |
| - name: Fail if tests failed | |
| if: steps.make-check.outcome == 'failure' | |
| run: exit 1 | |
| windows_msvc: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install dependencies | |
| run: | | |
| vcpkg install gettext libiconv libcsv libxlsxwriter zlib --triplet x64-windows | |
| vcpkg integrate install | |
| - name: Fix library filename and paths for MSVC | |
| shell: pwsh | |
| run: | | |
| $libDir = "C:\vcpkg\installed\x64-windows\lib" | |
| if (Test-Path "$libDir\iconv.lib") { | |
| Copy-Item "$libDir\iconv.lib" "$libDir\libiconv.lib" -Force | |
| } | |
| # Depending on the zlib port version, the import library is named | |
| # z.lib, zlib1.lib or zlibd.lib/zlib1d.lib; the projects link | |
| # against zlib.lib/zlibd.lib | |
| if (Test-Path "$libDir\z.lib") { | |
| Copy-Item "$libDir\z.lib" "$libDir\zlib.lib" -Force | |
| } | |
| if (Test-Path "$libDir\zd.lib") { | |
| Copy-Item "$libDir\zd.lib" "$libDir\zlibd.lib" -Force | |
| } | |
| if (Test-Path "$libDir\zlib1.lib") { | |
| Copy-Item "$libDir\zlib1.lib" "$libDir\zlib.lib" -Force | |
| } | |
| if (Test-Path "$libDir\zlib1d.lib") { | |
| Copy-Item "$libDir\zlib1d.lib" "$libDir\zlibd.lib" -Force | |
| } | |
| if (-not (Test-Path "$libDir\zlib.lib")) { | |
| Write-Host "##vso[task.logissue type=error]zlib.lib not found in $libDir after fix step" | |
| Get-ChildItem $libDir -Filter *.lib | Select-Object -ExpandProperty Name | |
| exit 1 | |
| } | |
| - name: Build | |
| run: | | |
| MSBuild ./VS17/ReadStat.sln /p:Configuration=Release /p:Platform=x64 /nologo | |
| - name: Test | |
| id: make-check | |
| shell: pwsh | |
| env: | |
| PATH: C:\vcpkg\installed\x64-windows\bin;${{ env.PATH }} | |
| run: | | |
| ./VS17/x64/Release/ReadStat_App.exe | |
| ./VS17/x64/Release/ReadStat_Test_double_decimals.exe | |
| ./VS17/x64/Release/ReadStat_Test_dta_days.exe | |
| ./VS17/x64/Release/ReadStat_Test_sav_date.exe | |
| ./VS17/x64/Release/ReadStat_Test_readstat.exe | |
| continue-on-error: true | |
| - name: Upload test log | |
| if: steps.make-check.outcome == 'failure' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-suite-log-windows | |
| path: test-suite.log | |
| retention-days: 5 | |
| - name: Fail if tests failed | |
| if: steps.make-check.outcome == 'failure' | |
| run: exit 1 |