summaryrefslogtreecommitdiff
path: root/.github/workflows/windows_python.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/windows_python.yml')
-rw-r--r--.github/workflows/windows_python.yml185
1 files changed, 185 insertions, 0 deletions
diff --git a/.github/workflows/windows_python.yml b/.github/workflows/windows_python.yml
new file mode 100644
index 0000000000..7549273628
--- /dev/null
+++ b/.github/workflows/windows_python.yml
@@ -0,0 +1,185 @@
+name: windows tests
+
+on:
+ push:
+ branches:
+ - features/windows-support
+ - windows-ci*
+ pull_request:
+ branches:
+ - features/windows-support
+ - windows-ci*
+ - develop
+defaults:
+ run:
+ shell:
+ powershell Invoke-Expression -Command ".\share\spack\qa\windows_test_setup.ps1"; {0}
+jobs:
+ validate:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python Packages
+ run: |
+ python -m pip install --upgrade pip
+ python -m pip install --upgrade vermin
+ - name: vermin (Spack's Core)
+ run: vermin --backport argparse --backport typing -t='2.6-' -t='3.5-' -v spack/lib/spack/spack/ spack/lib/spack/llnl/ spack/bin/
+ - name: vermin (Repositories)
+ run: vermin --backport argparse --backport typing -t='2.6-' -t='3.5-' -v spack/var/spack/repos
+ # Run style checks on the files that have been changed
+ style:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six setuptools flake8 isort>=4.3.5 mypy>=0.800 black pywin32 types-python-dateutil
+ - name: Create local develop
+ run: |
+ .\spack\.github\workflows\setup_git.ps1
+ - name: Run style tests
+ run: |
+ spack style
+ - name: Verify license headers
+ run: |
+ python spack\bin\spack license verify
+ unittest:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
+ - name: Create local develop
+ run: |
+ .\spack\.github\workflows\setup_git.ps1
+ - name: Unit Test
+ run: |
+ echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
+ spack unit-test -x --verbose --ignore=lib/spack/spack/test/cmd
+ unittest-cmd:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
+ - name: Create local develop
+ run: |
+ .\spack\.github\workflows\setup_git.ps1
+ - name: Command Unit Test
+ run: |
+ echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
+ spack unit-test lib/spack/spack/test/cmd -x --verbose
+ buildtest:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
+ - name: Build Test
+ run: |
+ spack compiler find
+ echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
+ spack external find cmake
+ spack external find ninja
+ spack install abseil-cpp
+ generate-installer-test:
+ runs-on: windows-latest
+ steps:
+ - name: Disable Windows Symlinks
+ run: |
+ git config --global core.symlinks false
+ shell:
+ powershell
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
+ - name: Add Light and Candle to Path
+ run: |
+ $env:WIX >> $GITHUB_PATH
+ - name: Run Installer
+ run: |
+ .\spack\share\spack\qa\setup_spack.ps1
+ spack make-installer -s spack -g SILENT pkg
+ echo "installer_root=$((pwd).Path)" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
+ env:
+ ProgressPreference: SilentlyContinue
+ - uses: actions/upload-artifact@v2
+ with:
+ name: Windows Spack Installer Bundle
+ path: ${{ env.installer_root }}\pkg\Spack.exe
+ - uses: actions/upload-artifact@v2
+ with:
+ name: Windows Spack Installer
+ path: ${{ env.installer_root}}\pkg\Spack.msi
+ execute-installer:
+ needs: generate-installer-test
+ runs-on: windows-latest
+ defaults:
+ run:
+ shell: pwsh
+ steps:
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install Python packages
+ run: |
+ python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
+ - name: Setup installer directory
+ run: |
+ mkdir -p spack_installer
+ echo "spack_installer=$((pwd).Path)\spack_installer" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
+ - uses: actions/download-artifact@v2
+ with:
+ name: Windows Spack Installer Bundle
+ path: ${{ env.spack_installer }}
+ - name: Execute Bundled Installer
+ run: |
+ $proc = Start-Process ${{ env.spack_installer }}\spack.exe "/install /quiet" -Passthru
+ $handle = $proc.Handle # cache proc.Handle
+ $proc.WaitForExit();
+ $LASTEXITCODE
+ env:
+ ProgressPreference: SilentlyContinue
+ - uses: actions/download-artifact@v2
+ with:
+ name: Windows Spack Installer
+ path: ${{ env.spack_installer }}
+ - name: Execute MSI
+ run: |
+ $proc = Start-Process ${{ env.spack_installer }}\spack.msi "/quiet" -Passthru
+ $handle = $proc.Handle # cache proc.Handle
+ $proc.WaitForExit();
+ $LASTEXITCODE \ No newline at end of file