From 26eadd310f0dc4ffad9da7f5d426e66be9dca2a8 Mon Sep 17 00:00:00 2001 From: cloudalchemybot Date: Mon, 10 Jan 2022 14:22:31 +0000 Subject: [PATCH] :robot: sync with cloudalchemy/skeleton (SHA: f292081d): Merge pull request #11 from cloudalchemy/superq/update_circleci --- .circleci/config.yml | 35 ++++++++++++++++++----------------- README.md | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d9115e8..1c7ecb5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ version: 2.1 executors: python: docker: - - image: cimg/python:3.9 + - image: cimg/python:3.10 publisher: docker: - image: quay.io/cloudalchemy/publisher:latest @@ -15,7 +15,6 @@ jobs: steps: - checkout - run: pip install ansible ansible-lint yamllint flake8 - - run: mkdir -p .cache/roles && ln -s ../.. .cache/roles/${CIRCLE_PROJECT_REPONAME} - run: ansible-lint - run: yamllint . - run: flake8 @@ -25,25 +24,21 @@ jobs: parameters: ansible: type: string + scenario: + type: string steps: - checkout - setup_remote_docker - - run: ln -s ~/project ~/${CIRCLE_PROJECT_REPONAME} - - run: pip install "ansible~=<>.0" + - run: pip install "ansible~=<< parameters.ansible >>.0" - run: pip install -r test-requirements.txt - - run: molecule test -s default --destroy always - - run: | - if [[ -d 'molecule/alternative' ]]; then - molecule test -s alternative --destroy always - else - echo 'No alternative test' - fi - - run: | - if [[ -z "${CIRCLE_PULL_REQUEST}" ]] && [[ -d 'molecule/latest' ]]; then - molecule test -s latest --destroy always - else - echo 'Not running latest on PR' - fi + - run: + no_output_timeout: 60m + command: | + if [[ -n "${CIRCLE_PULL_REQUEST}" ]] && [[ '<< parameters.scenario >>' == 'latest' ]]; then + echo 'Not running latest on PR' + else + molecule test -s '<< parameters.scenario >>' --destroy always + fi release: executor: publisher steps: @@ -74,6 +69,12 @@ workflows: ansible: - "2.9" - "2.10" + - "4.10" + - "5.1" + scenario: + - default + - alternative + - latest filters: tags: only: /.*/ diff --git a/README.md b/README.md index 36a096c..d1961c3 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ You can run the different Cortex modules as separate services by setting The preferred way of locally testing the role is to use Docker and [molecule](https://github.com/ansible-community/molecule) (v3.x). You will have to install Docker on your system. See "Get started" for a Docker package suitable to for your system. Running your tests is as simple as executing `molecule test`. -## Continuous Intergation +## Continuous Integration Combining molecule and circle CI allows us to test how new PRs will behave when used with multiple ansible versions and multiple operating systems. This also allows use to create test scenarios for different role configurations. As a result we have a quite large test matrix which can take more time than local testing, so please be patient.