This repository has been archived by the owner on May 22, 2024. It is now read-only.
CI #1029
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: 2022 Helmholtz Centre for Environmental Research (UFZ) | |
# SPDX-FileCopyrightText: 2022 Helmholtz-Zentrum Dresden-Rossendorf (HZDR) | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
--- | |
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- "main" | |
tags: | |
- "v*.*.*" | |
schedule: | |
- cron: '0 0 * * *' | |
env: | |
PY_COLORS: 1 | |
ANSIBLE_FORCE_COLOR: 1 | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Prepare the job environment. | |
uses: ./.github/workflows/prepare-action | |
- name: Lint code. | |
run: | | |
pipenv run yamllint --strict --format colored . | |
pipenv run ansible-lint -v --force-color --offline --exclude=.pipenv/ | |
license_compliance: | |
name: Check license compliance with reuse. | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Prepare the job environment. | |
uses: ./.github/workflows/prepare-action | |
- name: Lint code. | |
run: pipenv run reuse lint | |
test: | |
name: Run Molecule tests. | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
image: | |
- ghcr.io/hifis-net/ubuntu-systemd:20.04 | |
- ghcr.io/hifis-net/ubuntu-systemd:22.04 | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Prepare the job environment. | |
uses: ./.github/workflows/prepare-action | |
- name: Install modern podman | |
run: | | |
sudo mkdir -p /etc/apt/keyrings | |
curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/Release.key \ | |
| gpg --dearmor \ | |
| sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null | |
echo \ | |
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg]\ | |
https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/ /" \ | |
| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null | |
sudo apt-get update -qq | |
sudo apt-get -qq -y install podman | |
shell: bash | |
- name: Run Molecule tests. | |
# Haproxy tries to configure the nofile limit which is not allowed from within podman. | |
# This approach increased the limit beforehand. | |
run: XDG_RUNTIME_DIR=/run/user/$UID pipenv run sudo prlimit --pid $$ --nofile=500000:500000 && pipenv run molecule test | |
env: | |
MOLECULE_IMAGE: ${{ matrix.image }} | |
release: | |
name: Release new version on Ansible Galaxy | |
runs-on: ubuntu-22.04 | |
if: startsWith(github.ref, 'refs/tags/v') | |
needs: [lint, license_compliance, test] | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: galaxy | |
uses: robertdebock/galaxy-action@1.2.1 | |
with: | |
galaxy_api_key: ${{ secrets.galaxy_api_key }} | |
git_branch: "main" |