From e40cbd77af3607bf98728d6db6efe9ee07b7d839 Mon Sep 17 00:00:00 2001
From: Marko Petric <marko.petric@cern.ch>
Date: Thu, 17 Dec 2020 12:01:13 +0100
Subject: [PATCH] Use github action and mount whole cvmfs folder shared

---
 .github/workflows/linux.yml  | 79 +++++-------------------------------
 .github/workflows/mac.yml    | 19 ++-------
 .github/workflows/python.yml | 16 +-------
 3 files changed, 16 insertions(+), 98 deletions(-)

diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 9aaa0de16..4fd4ee30c 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -16,22 +16,11 @@ jobs:
       TBB: OFF
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
         ls
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch  -d ghcr.io/aidasoft/centos7:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
     - name: Compile and test
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/compile_and_test.sh"
@@ -51,23 +40,11 @@ jobs:
       TBB: ON
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
-        ls /cvmfs/sft-nightlies.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
         ls
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch -d ghcr.io/aidasoft/centos7:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
     - name: Compile and test
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/compile_and_test.sh"
@@ -84,23 +61,11 @@ jobs:
       TBB: ON
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
-        ls /cvmfs/sft-nightlies.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
         ls
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch -d ghcr.io/aidasoft/centos7:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
     - name: Compile and test
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/compile_and_test.sh"
@@ -119,23 +84,11 @@ jobs:
       TBB: ON
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
-        ls /cvmfs/sft-nightlies.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
         ls
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch -d ghcr.io/aidasoft/ubuntu18:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/ubuntu18:latest /bin/bash
     - name: Compile and test
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/compile_and_test.sh"
@@ -156,23 +109,11 @@ jobs:
       EDM4HEP: ON
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
-        ls /cvmfs/sft-nightlies.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
         ls
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB}  -e HEPMC3=${HEPMC3} -e EDM4HEP=${EDM4HEP} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch -d ghcr.io/aidasoft/centos7:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -e SHARED=${SHARED} -e STANDARD=${STANDARD} -e TBB=${TBB}  -e HEPMC3=${HEPMC3} -e EDM4HEP=${EDM4HEP} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
     - name: Compile and test
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/compile_and_test.sh"
diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml
index 228c1cd06..c6cb50c69 100644
--- a/.github/workflows/mac.yml
+++ b/.github/workflows/mac.yml
@@ -10,25 +10,14 @@ jobs:
         LCG: ["LCG_98python3/x86_64-mac1015-clang110-opt","LCG_97apython3/x86_64-mac1015-clang110-opt"]
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
+    - uses: cvmfs-contrib/github-action-cvmfs@main
+      with:
+        cvmfs_repositories: 'sft.cern.ch,geant4.cern.ch'
+    - name: Install LCG requirements
       run: |
         brew install ninja
-        brew cask install osxfuse
-        curl -L -o cvmfs-latest.pkg http://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-latest.pkg
-        sudo installer -package cvmfs-latest.pkg -target /
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
         brew cask install gfortran
         brew cask install xquartz
-    - name: Mount CVMFS
-      run: |
-        mkdir -p /Users/Shared/cvmfs/sft.cern.ch
-        mkdir -p /Users/Shared/cvmfs/geant4.cern.ch
-        sudo mount -t cvmfs sft.cern.ch /Users/Shared/cvmfs/sft.cern.ch
-        sudo mount -t cvmfs geant4.cern.ch /Users/Shared/cvmfs/geant4.cern.ch
-        ls /Users/Shared/cvmfs/sft.cern.ch
-        ls /Users/Shared/cvmfs/geant4.cern.ch
     - name: Build DD4hep
       run: |
         source /Users/Shared/cvmfs/sft.cern.ch/lcg/views/${{ matrix.LCG }}/setup.sh
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index 25a52bf1c..e53a96740 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -10,22 +10,10 @@ jobs:
         LCG: ["LCG_98/x86_64-centos7-gcc10-opt"]
     steps:
     - uses: actions/checkout@v2
-    - name: Install CVMFS
-      run: |
-        wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
-        sudo dpkg -i cvmfs-release-latest_all.deb
-        sudo apt-get update
-        sudo apt-get install cvmfs cvmfs-config-default
-        wget --no-check-certificate https://lcd-data.web.cern.ch/lcd-data/CernVM/default.local
-        sudo mkdir -p /etc/cvmfs
-        sudo mv default.local /etc/cvmfs/default.local
-        sudo cvmfs_config setup
-        ls /cvmfs/sft.cern.ch
-        ls /cvmfs/geant4.cern.ch
-        ls /cvmfs/sft-nightlies.cern.ch
+    - uses: cvmfs-contrib/github-action-cvmfs@main
     - name: Start container
       run: |
-        docker run -it --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch -d ghcr.io/aidasoft/centos7:latest /bin/bash
+        docker run -it --privileged --name CI_container -v /home/runner/work/DD4hep/DD4hep:/Package -e VIEW=${{ matrix.LCG }} -v /cvmfs:/cvmfs:shared -d ghcr.io/aidasoft/centos7:latest /bin/bash
     - name: Run Python Checks
       run: |
         docker exec CI_container /bin/bash -c "./Package/.github/scripts/runPythonChecks.sh"
-- 
GitLab