From ece19d5f4c6316c0ccfe6a1ba91ef6c40798ca54 Mon Sep 17 00:00:00 2001 From: cloudalchemybot Date: Tue, 4 Jan 2022 14:22:26 +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 f5cf202..4d5b3ba 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ We provide demo site for full monitoring solution based on prometheus and grafan 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.