From d6017b4a515bce65bfcbb734cbfb9c4e90ac0bcc Mon Sep 17 00:00:00 2001 From: pwalczysko Date: Fri, 23 Aug 2024 16:59:21 +0100 Subject: [PATCH] try to replace molecule.yml in test --- molecule/omero-training-server/molecule.yml | 119 ++++++++++---------- 1 file changed, 61 insertions(+), 58 deletions(-) diff --git a/molecule/omero-training-server/molecule.yml b/molecule/omero-training-server/molecule.yml index af145c55..543b1e7f 100644 --- a/molecule/omero-training-server/molecule.yml +++ b/molecule/omero-training-server/molecule.yml @@ -1,59 +1,62 @@ --- -dependency: - name: galaxy - options: - role-file: requirements.yml -driver: - name: docker -lint: | - yamllint . - ansible-lint - flake8 -platforms: - - name: ome-outreach - image: centos/systemd - command: /sbin/init - privileged: true - groups: - - docker-hosts - - omero-server - - omero-web - - monitored -provisioner: - name: ansible - inventory: - group_vars: - all: - molecule_test: true - postgresql_version: "13" - docker-hosts: - # This should allow docker-in-docker to work - docker_storage_driver: vfs - # Latest version 17.12.1.ce-1.el7.centos has a bug that prevents - # testing on travis: https://github.com/docker/for-linux/issues/219 - docker_version: 17.09.1.ce-1.el7.centos - # firewalld isn't installed, don't attempt to disable - iptables_raw_disable_firewalld: false - playbooks: - prepare: ../resources/prepare-iproute.yml - converge: ../../site.yml - lint: - name: ansible-lint -scenario: - name: omero-training-server - test_sequence: - - destroy - # dependency must come first so that ansible-lint will see a custom module - # This might be fixed by https://github.com/ansible/molecule/pull/1739 - - dependency - - lint - - syntax - - create - - prepare - - converge - # FIXME: Some tasks are not idempotent - # - idempotence - - verify - - destroy -verifier: - name: testinfra +name: Molecule +# yamllint disable-line rule:truthy +on: + push: + pull_request: + schedule: + - cron: '29 21 * * 0' + +jobs: + + list-scenarios: + runs-on: ubuntu-22.04 + outputs: + matrix: ${{ steps.listscenarios.outputs.scenarios }} + steps: + - uses: actions/checkout@v4 + - id: listscenarios + uses: ome/action-ansible-molecule-list-scenarios@main + + test: + name: Test + needs: + - list-scenarios + runs-on: ubuntu-22.04 + strategy: + # Keep running so we can see if other tests pass + fail-fast: false + matrix: + scenario: ${{fromJson(needs.list-scenarios.outputs.matrix)}} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: '3.9' + - name: Install Ansible & Molecule + run: | + pip install "ansible<8" "ansible-lint<6.13" flake8 + pip install "molecule<5" "ansible-compat<4" + pip install molecule-plugins[docker] pytest-testinfra + - name: Run molecule + run: molecule test -s "${{ matrix.scenario }}" + + publish: + name: Galaxy + if: startsWith(github.ref, 'refs/tags') + needs: + - test + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Read the role name + id: role-name + run: | + name=$(grep 'role_name' meta/main.yml | sed -r 's/^[^:]*:(.*)$/\1/' | tr -d '[:space:]') # noqa + echo "rolename=$name" >> "$GITHUB_OUTPUT" + - name: Publish to Galaxy + uses: ome/action-ansible-galaxy-publish@main + with: + galaxy-api-key: ${{ secrets.GALAXY_API_KEY }} + galaxy-version: ${{ github.ref_name }} + role-name: ${{ steps.role-name.outputs.rolename }}