From 230039a0362a91ad9295bc1d6119152d54b04da6 Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Thu, 20 Jan 2022 15:32:42 +0100 Subject: [PATCH 1/6] test role via molecule Add continuous integration tests via the `molecule` package that run on Github actions. --- .github/workflows/ci.yml | 65 +++++++++++++++++++++++++++++++++++ defaults/main.yml | 2 +- molecule/default/converge.yml | 18 ++++++++++ molecule/default/molecule.yml | 20 +++++++++++ molecule/default/verify.yml | 9 +++++ requirements.txt | 4 +++ 6 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml create mode 100644 molecule/default/converge.yml create mode 100644 molecule/default/molecule.yml create mode 100644 molecule/default/verify.yml create mode 100644 requirements.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d552555 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +--- + +name: CI + +on: + push: + pull_request: + +env: + galaxy-name: "cvmfs_contrib.cvmfs_client" + +jobs: + + molecule: + runs-on: ubuntu-latest + + strategy: + matrix: + distro: [centos8] + fail-fast: false + + steps: + + - uses: actions/checkout@v2 + with: + path: ${{ env.galaxy-name }} + + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: Upgrade pip + run: | + pip install --upgrade pip wheel + pip --version + + - name: Install requirements + run: | + pip install --use-feature=2020-resolver -r requirements.txt + working-directory: ${{ env.galaxy-name }} + + # See https://github.com/geerlingguy/raspberry-pi-dramble/issues/166 + - name: Force GitHub Actions' docker daemon to use vfs. + run: | + sudo systemctl stop docker + echo '{"cgroup-parent":"/actions_job","storage-driver":"vfs"}' | sudo tee /etc/docker/daemon.json + sudo systemctl start docker + + - name: Run molecule + run: molecule test + working-directory: ${{ env.galaxy-name }} + env: + MOLECULE_DISTRO: ${{ matrix.distro }} + + # release: + # name: Publish to ansible-galaxy + # if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + # needs: [pre-commit, molecule] + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: robertdebock/galaxy-action@1.0.3 + # with: + # galaxy_api_key: ${{ secrets.GALAXY_API_KEY }} diff --git a/defaults/main.yml b/defaults/main.yml index 5866d0f..645e851 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -30,7 +30,7 @@ cvmfs_force_unmount: false # according to cvmfs_client_pv_name, cvmfs_client_vg_name, and # cvmfs_client_lv_name as described below. If false, you will need to # configure the cache storage yourself instead, and also ensure it is the required size. -cvmfs_client_configure_storage: true +cvmfs_client_configure_storage: false # If this block device name is defined, then a volume group, logical volume, and filesystem will be created on it. # If it is not defined, then a volume group is assumed to already exist and will be used instead. diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..50140fa --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,18 @@ +--- + +- name: Converge + hosts: all + become: true + + pre_tasks: + - name: Update apt cache. + apt: update_cache=yes cache_valid_time=600 + when: ansible_os_family == 'Debian' + + roles: + - role: cvmfs_contrib.cvmfs_client + vars: + cvmfs_cache_size: "1000" # small cache size for CI + cvmfs_http_proxy: "DIRECT" + cvmfs_configuration: + - "cvmfs-config-computecanada" diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..cc1d989 --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,20 @@ +--- + +dependency: + name: galaxy + options: + role-file: ansible-role-requirements.yml +driver: + name: docker +platforms: +- name: instance + image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu1804}-ansible:latest" + command: ${MOLECULE_DOCKER_COMMAND:-""} + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + privileged: true + pre_build_image: true +provisioner: + name: ansible + playbooks: + converge: converge.yml diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml new file mode 100644 index 0000000..029c2e6 --- /dev/null +++ b/molecule/default/verify.yml @@ -0,0 +1,9 @@ +--- + +- name: Verify + hosts: all + become: true + + tasks: + - name: Test loading the Compute Canda module environment + shell: source /cvmfs/soft.computecanada.ca/config/profile/bash.sh diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..07e9196 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +# for running tests +molecule[docker]~=3.3.0 +docker~=4.4.4 +ansible~=4.8.0 From bd7574a39afbcec3ee5e0043cfa474d137f0ec41 Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Sat, 22 Jan 2022 01:15:56 +0100 Subject: [PATCH 2/6] undo change of default value --- defaults/main.yml | 2 +- molecule/default/converge.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 645e851..5866d0f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -30,7 +30,7 @@ cvmfs_force_unmount: false # according to cvmfs_client_pv_name, cvmfs_client_vg_name, and # cvmfs_client_lv_name as described below. If false, you will need to # configure the cache storage yourself instead, and also ensure it is the required size. -cvmfs_client_configure_storage: false +cvmfs_client_configure_storage: true # If this block device name is defined, then a volume group, logical volume, and filesystem will be created on it. # If it is not defined, then a volume group is assumed to already exist and will be used instead. diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 50140fa..c1d1c6b 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -12,6 +12,7 @@ roles: - role: cvmfs_contrib.cvmfs_client vars: + cvmfs_client_configure_storage: false cvmfs_cache_size: "1000" # small cache size for CI cvmfs_http_proxy: "DIRECT" cvmfs_configuration: From 776798fc056768e40697856c6daaaa9fe7c82c86 Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Sun, 24 Jul 2022 22:24:54 +0200 Subject: [PATCH 3/6] incorporate suggestions from code review --- molecule/default/converge.yml | 2 -- molecule/default/verify.yml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index c1d1c6b..d23ad4d 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -15,5 +15,3 @@ cvmfs_client_configure_storage: false cvmfs_cache_size: "1000" # small cache size for CI cvmfs_http_proxy: "DIRECT" - cvmfs_configuration: - - "cvmfs-config-computecanada" diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml index 029c2e6..54a2ecc 100644 --- a/molecule/default/verify.yml +++ b/molecule/default/verify.yml @@ -5,5 +5,5 @@ become: true tasks: - - name: Test loading the Compute Canda module environment + - name: Test loading the Compute Canada module environment shell: source /cvmfs/soft.computecanada.ca/config/profile/bash.sh From 14537955c6f480975752bb133e6b8b96bf521efc Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Sun, 24 Jul 2022 22:43:48 +0200 Subject: [PATCH 4/6] add server url --- molecule/default/converge.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index d23ad4d..c1b108a 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -15,3 +15,5 @@ cvmfs_client_configure_storage: false cvmfs_cache_size: "1000" # small cache size for CI cvmfs_http_proxy: "DIRECT" + cvmfs_client_conf: + CVMFS_SERVER_URL: http://cvmfs-stratum-one.cern.ch/cvmfs/atlas.cern.ch From da38735de940afb367967870c82cd52552dee621 Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Sun, 24 Jul 2022 22:45:35 +0200 Subject: [PATCH 5/6] switch to compute canada server --- molecule/default/converge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index c1b108a..f967753 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -16,4 +16,4 @@ cvmfs_cache_size: "1000" # small cache size for CI cvmfs_http_proxy: "DIRECT" cvmfs_client_conf: - CVMFS_SERVER_URL: http://cvmfs-stratum-one.cern.ch/cvmfs/atlas.cern.ch + CVMFS_SERVER_URL: http://cvmfs-cache.arbutus.cloud.computecanada.ca:3128 From bc2ca5bebf91ef1105a23a5c9a80644e5cc01851 Mon Sep 17 00:00:00 2001 From: Leopold Talirz Date: Thu, 4 Aug 2022 09:43:59 +0200 Subject: [PATCH 6/6] remove SERVER URL again --- molecule/default/converge.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index f967753..d23ad4d 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -15,5 +15,3 @@ cvmfs_client_configure_storage: false cvmfs_cache_size: "1000" # small cache size for CI cvmfs_http_proxy: "DIRECT" - cvmfs_client_conf: - CVMFS_SERVER_URL: http://cvmfs-cache.arbutus.cloud.computecanada.ca:3128