Skip to content

Borgbackup

Borgbackup #2134

---
# Copyright (C) 2021 Maciej Delmanowski <drybjed@gmail.com>
# Copyright (C) 2021 DebOps <https://debops.org/>
# SPDX-License-Identifier: GPL-3.0-or-later
name: Continuous Integration
on: [ 'push', 'pull_request' ]
jobs:
reuse-spdx:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade reuse
- name: Check codebase with REUSE linter
run: |
reuse --version
make test-spdx
make check
ansible-lint:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
sudo apt-get remove --purge -yq ansible
sudo apt-get install python3-netaddr
pip3 install --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade Jinja2 ansible ansible-lint
- name: Verify playbook with ansible-lint
run: |
ansible-lint --version
make test-ansible-lint
make check
ansible-playbook:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
sudo apt-get remove --purge -yq ansible
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade Jinja2 ansible
- name: Check playbook syntax with ansible-playbook
run: |
ansible --version
make test-playbook-syntax
make check
ansible-galaxy:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get -yq install pandoc pandoc-data
sudo apt-get remove --purge -yq ansible
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade Jinja2 ansible ansible-lint yamllint galaxy-importer reuse
- name: Build DebOps Collections for Ansible Galaxy
env:
DEBOPS_VERSION: '0.0.0'
run: |
yamllint --version
ansible --version
ansible-lint --version
make collection
make check
yamllint:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade yamllint
- name: Check codebase with yamllint
run: |
yamllint --version
make test-yaml
make check
pycodestyle:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade pycodestyle
- name: Check codebase with pycodestyle
run: |
printf "pycodestyle %s\\n" "$(pycodestyle --version)"
make test-pep8
make check
shellcheck:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get install -yq shellcheck
- name: Check shell scripts with shellcheck
run: |
shellcheck --version
make test-shell
make check
docker-image:
runs-on: 'ubuntu-latest'
steps:
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Build and verify Docker image
# https://github.com/actions/runner/issues/241
shell: 'script -q -e -c "bash {0}"'
run: 'make test-docker-build'
debops-unit-test:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get -yq install python3-nose2
pip3 install --user --upgrade pip wheel "setuptools==65.7.0" pypandoc
pip3 install --user --upgrade cov-core future unittest2 pyyaml python-dotenv toml pyxdg jinja2
- name: Run DebOps unit tests
run: |
make clean-tests
#make test-debops-tools test-debops-ansible_plugins
make test-debops-ansible_plugins
make check
debops-wheel:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get -yq install pandoc pandoc-data graphviz
pip3 install --user --upgrade pip wheel "setuptools==65.7.0" pypandoc
pip3 install --user --upgrade sphinx sphinx-autobuild sphinx_rtd_theme
- name: Build DebOps Python wheel package
run: |
make clean-tests
make check
make test-man wheel-quiet
pip3 install --user dist/*
pip3 list | grep debops
debops-sdist:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get -yq install pandoc pandoc-data graphviz
pip3 install --user --upgrade pip wheel "setuptools==65.7.0" pypandoc
pip3 install --user --upgrade sphinx sphinx-autobuild sphinx_rtd_theme
- name: Build DebOps Python sdist package
run: |
make clean-tests
make check
make test-man sdist-quiet
pip3 install --user dist/*
pip3 list | grep debops
codespell:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
with:
fetch-depth: 0
- name: Prepare test environment
run: |
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade codespell tomli
- name: Check common misspellings using codespell
run: |
make clean-tests
make test-spell
documentation:
runs-on: 'ubuntu-latest'
steps:
- name: Add ~/.local/bin to $PATH
run: 'printf "%s/.local/bin\n" "${HOME}" >> ${GITHUB_PATH}'
- name: Clone the repository
uses: 'actions/checkout@v3'
- name: Prepare test environment
run: |
sudo apt-get -qq update
sudo apt-get install -yq graphviz
pip3 install --user --upgrade pip wheel "setuptools==65.7.0"
pip3 install --user --upgrade sphinx sphinx-autobuild sphinx_rtd-theme
- name: Build documentation site
run: |
sphinx-build --version
dot -V
make test-docs
make check