summaryrefslogblamecommitdiff
path: root/.github/workflows/windows_python.yml
blob: 05a98c4cba941a219a4d351ad3e3f1a79d09d422 (plain) (tree)
1
2
3
4
5
6
7
8
9
             

   
                

            
                                                                                           

                          




                                                                                         
             

                           
                                                                     

                      
                                                                         



                                   
                                                                                              





                                                                                                                         

                
                                                                                                        

                           
                                                                           

                                
                 

                           
                                                                     

                      
                                                                         



                                   
                                                                                                       





                                                                                                                         
                
                                                                                               

                           
                                                                           

                                
               

                           
                                                                     

                      
                                                                         










                                                                                                                         
                                   
                 






                                               
                                                                     

                      
                                                                         



                                   
                                                                    









                                                                                                       
                                                                            


                                                     
                                                                            



                                                    
                         




                           
                                                                         



                                   
                                                                    



                                                                                                                        
                                        










                                                                                               
                                        







                                                                                      
                     
name: windows

on:
  workflow_call:

concurrency:
  group: windows-${{github.ref}}-${{github.event.pull_request.number || github.run_number}}
  cancel-in-progress: true

defaults:
  run:
    shell:
     powershell Invoke-Expression -Command ".\share\spack\qa\windows_test_setup.ps1"; {0}
jobs:
  unit-tests:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
      with:
        fetch-depth: 0
    - uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984
      with:
        python-version: 3.9
    - name: Install Python packages
      run: |
          python -m pip install --upgrade pip six pywin32 setuptools codecov pytest-cov clingo
    - 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
        cd spack
        dir
        spack unit-test -x --verbose --cov --cov-config=pyproject.toml --ignore=lib/spack/spack/test/cmd
        coverage combine -a
        coverage xml
    - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70
      with:
        flags: unittests,windows
  unit-tests-cmd:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
      with:
        fetch-depth: 0
    - uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984
      with:
        python-version: 3.9
    - name: Install Python packages
      run: |
          python -m pip install --upgrade pip six pywin32 setuptools codecov coverage pytest-cov clingo
    - 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
        cd spack
        spack unit-test -x --verbose --cov --cov-config=pyproject.toml lib/spack/spack/test/cmd
        coverage combine -a
        coverage xml
    - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70
      with:
        flags: unittests,windows
  build-abseil:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
      with:
        fetch-depth: 0
    - uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984
      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 -d install abseil-cpp
  make-installer:
    runs-on: windows-latest
    steps:
    - name: Disable Windows Symlinks
      run: |
        git config --global core.symlinks false
      shell:
        powershell
    - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
      with:
        fetch-depth: 0
    - uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984
      with:
        python-version: 3.9
    - name: Install Python packages
      run: |
          python -m pip install --upgrade pip six pywin32 setuptools
    - 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@83fd05a356d7e2593de66fc9913b3002723633cb
      with:
        name: Windows Spack Installer Bundle
        path: ${{ env.installer_root }}\pkg\Spack.exe
    - uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb
      with:
        name: Windows Spack Installer
        path: ${{ env.installer_root}}\pkg\Spack.msi
  execute-installer:
    needs: make-installer
    runs-on: windows-latest
    defaults:
      run:
        shell: pwsh
    steps:
    - uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984
      with:
        python-version: 3.9
    - name: Install Python packages
      run: |
          python -m pip install --upgrade pip six pywin32 setuptools
    - 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@v3
      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@v3
      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