fix(scons): strip annobin/hardened specs after configuration phase #6
Workflow file for this run
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: Windows Build | |
| on: | |
| push: | |
| branches: [master, develop, feature/windows-support] | |
| pull_request: | |
| branches: [master, develop] | |
| jobs: | |
| build-windows: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [msvc, mingw] | |
| python-version: ['3.11', '3.12'] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install scons | |
| - name: Install SWIG | |
| run: | | |
| choco install swig -y | |
| shell: cmd | |
| - name: Set up MSVC | |
| if: matrix.compiler == 'msvc' | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Set up MinGW | |
| if: matrix.compiler == 'mingw' | |
| uses: egor-tensin/setup-mingw@v2 | |
| with: | |
| platform: x64 | |
| - name: Install Perl (Strawberry) | |
| run: | | |
| choco install strawberryperl -y | |
| refreshenv | |
| shell: cmd | |
| - name: Install R | |
| uses: r-lib/actions/setup-r@v2 | |
| with: | |
| r-version: 'release' | |
| - name: Install R packages | |
| run: | | |
| Rscript -e "install.packages(c('Rcpp', 'RInside'), repos='https://cloud.r-project.org')" | |
| shell: cmd | |
| - name: Display build environment | |
| run: | | |
| echo "Python version:" | |
| python --version | |
| echo "SCons version:" | |
| scons --version | |
| echo "SWIG version:" | |
| swig -version | |
| echo "R version:" | |
| Rscript --version | |
| echo "Perl version:" | |
| perl -v | head -2 | |
| shell: bash | |
| - name: Build PluMA (without R and Perl for initial test) | |
| run: | | |
| scons --without-r --without-perl | |
| shell: cmd | |
| continue-on-error: true | |
| - name: Build PluMA (Python only) | |
| if: failure() | |
| run: | | |
| scons --without-r --without-perl | |
| shell: cmd | |
| - name: Check build artifacts | |
| run: | | |
| echo "Checking for built files..." | |
| if (Test-Path "pluma.exe") { echo "pluma.exe exists" } else { echo "pluma.exe not found" } | |
| if (Test-Path "_PyPluMA.dll") { echo "_PyPluMA.dll exists" } else { echo "_PyPluMA.dll not found" } | |
| if (Test-Path "PluGen/plugen.exe") { echo "plugen.exe exists" } else { echo "plugen.exe not found" } | |
| Get-ChildItem -Filter "*.dll" | ForEach-Object { echo $_.Name } | |
| Get-ChildItem -Filter "*.exe" | ForEach-Object { echo $_.Name } | |
| shell: pwsh | |
| build-windows-full: | |
| runs-on: windows-latest | |
| needs: build-windows | |
| if: success() | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install scons | |
| - name: Install SWIG | |
| run: choco install swig -y | |
| shell: cmd | |
| - name: Set up MSVC | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install Perl (Strawberry) | |
| run: choco install strawberryperl -y | |
| shell: cmd | |
| - name: Install R | |
| uses: r-lib/actions/setup-r@v2 | |
| with: | |
| r-version: 'release' | |
| - name: Install R packages | |
| run: | | |
| Rscript -e "install.packages(c('Rcpp', 'RInside'), repos='https://cloud.r-project.org')" | |
| shell: cmd | |
| - name: Full build with all languages | |
| run: scons | |
| shell: cmd | |
| continue-on-error: true | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: pluma-windows-build | |
| path: | | |
| pluma.exe | |
| *.dll | |
| PluGen/plugen.exe | |
| if-no-files-found: warn |