From 4a57b025b14edc7054ad519d099372153c9e6d59 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 5 Sep 2021 16:46:09 +0200 Subject: [PATCH] faster install --- .github/workflows/Fortran.yml | 83 +++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/.github/workflows/Fortran.yml b/.github/workflows/Fortran.yml index 616d357e9..d06bde1f8 100644 --- a/.github/workflows/Fortran.yml +++ b/.github/workflows/Fortran.yml @@ -26,12 +26,7 @@ jobs: - uses: actions/checkout@v2 - - name: Set up Python 3.x - uses: actions/setup-python@v1 - with: - python-version: 3.x - - - name: Install GCC (Linux) + - name: GCC - Install (Linux) if: contains( matrix.os, 'ubuntu') run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test @@ -42,28 +37,39 @@ jobs: --slave /usr/bin/g++ g++ /usr/bin/g++-${GCC_V} \ --slave /usr/bin/gcov gcov /usr/bin/gcov-${GCC_V} - - name: Install GCC (macOS) + - name: GCC - Install (macOS) if: contains( matrix.os, 'macos') run: | brew install gcc@${GCC_V} || brew upgrade gcc@${GCC_V} || true brew link gcc@${GCC_V} - - name: Get PETSc - if: steps.${{ matrix.os }}-gcc${{ matrix.gcc_v }}-${{ hashFiles('**/petscversion.h') }}-6.outputs.cache-hit != 'true' + - name: PETSc - Cache download + id: petsc-download + uses: actions/cache@v2 + with: + path: download + key: petsc-3.15.4.tar.gz + + - name: PETSc - Download + if: steps.petsc-download.outputs.cache-hit != 'true' run: | - wget -q https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.4.tar.gz - tar -xf petsc-3.15.4.tar.gz + wget -q https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.4.tar.gz -P download + + - name: PETSc - Prepare + run: | + tar -xf download/petsc-3.15.4.tar.gz -C . export PETSC_DIR=${PWD}/petsc-3.15.4 export PETSC_ARCH=gcc${GCC_V} printenv >> $GITHUB_ENV - - name: Cache PETSc installation + - name: PETSc - Cache installation + id: petsc-install uses: actions/cache@v2 with: path: petsc-3.15.4 - key: ${{ matrix.os }}-gcc${{ matrix.gcc_v }}-${{ hashFiles('**/petscversion.h') }}-6 + key: petsc-3.15.4-${{ matrix.os }}-gcc${{ matrix.gcc_v }}-${{ hashFiles('**/petscversion.h') }} - - name: Install PETSc (Linux) + - name: PETSc - Install (Linux) if: contains( matrix.os, 'ubuntu') run: | cd petsc-3.15.4 @@ -72,7 +78,7 @@ jobs: --with-mpi-f90module-visibility=0 make all - - name: Install PETSc (macOS) + - name: PETSc - Install (macOS) if: contains( matrix.os, 'macos') run: | cd petsc-3.15.4 @@ -80,7 +86,7 @@ jobs: --download-openmpi --download-fftw --download-hdf5 --download-zlib make all - - name: Compile DAMASK + - name: DAMASK - Compile run: | cmake -B build/grid -DDAMASK_SOLVER=grid -DCMAKE_INSTALL_PREFIX=${PWD} cmake --build build/grid --parallel @@ -89,7 +95,7 @@ jobs: cmake --build build/mesh --parallel cmake --install build/mesh - - name: Run DAMASK + - name: DAMASK - Run run: | ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -w examples/grid @@ -107,38 +113,47 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up Python 3.x - uses: actions/setup-python@v1 - with: - python-version: 3.x - - - name: Install Intel + - name: Intel - Install run: | wget -q https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt-get update - sudo apt-get install intel-hpckit + sudo apt-get install \ + intel-basekit \ + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-fortran \ + intel-oneapi-openmp intel-oneapi-mkl-devel source /opt/intel/oneapi/setvars.sh printenv >> $GITHUB_ENV - - name: Get PETSc - if: steps.intel-${{ matrix.intel_v }}-${{ hashFiles('**/petscversion.h') }}-6.outputs.cache-hit != 'true' + - name: PETSc - Cache download + id: petsc-download + uses: actions/cache@v2 + with: + path: download + key: petsc-3.15.4.tar.gz + + - name: PETSc - Download + if: steps.petsc-download.outputs.cache-hit != 'true' run: | - wget -q https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.4.tar.gz - tar -xf petsc-3.15.4.tar.gz + wget -q https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.15.4.tar.gz -P download + + - name: PETSc - Prepare + run: | + tar -xf download/petsc-3.15.4.tar.gz -C . export PETSC_DIR=${PWD}/petsc-3.15.4 export PETSC_ARCH=intel-${INTEL_V} printenv >> $GITHUB_ENV - - name: Cache PETSc installation + - name: PETSc - Cache installation + id: petsc-install uses: actions/cache@v2 with: path: petsc-3.15.4 - key: intel-${{ matrix.intel_v }}-${{ hashFiles('**/petscversion.h') }}-6 + key: petsc-3.15.4-intel-${{ matrix.intel_v }}-${{ hashFiles('**/petscversion.h') }} - - name: Install PETSc Intel (classic) + - name: PETSc - Install (classic) if: contains( matrix.intel_v, 'classic') run: | cd petsc-3.15.4 @@ -146,7 +161,7 @@ jobs: --download-fftw --download-hdf5 --download-zlib make all - - name: Install PETSc Intel (LLVM) + - name: PETSc - Install (LLVM) if: contains( matrix.intel_v, 'llvm') run: | cd petsc-3.15.4 @@ -154,7 +169,7 @@ jobs: --download-fftw --download-hdf5 --download-zlib make all - - name: Compile DAMASK + - name: DAMASK - Compile run: | cmake -B build/grid -DDAMASK_SOLVER=grid -DCMAKE_INSTALL_PREFIX=${PWD} cmake --build build/grid --parallel @@ -163,6 +178,6 @@ jobs: cmake --build build/mesh --parallel cmake --install build/mesh - - name: Run DAMASK + - name: DAMASK - Run run: | ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -w examples/grid