ci: fix tests and use SLE containers #50
Workflow file for this run
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
--- | |
name: Package CI | |
# - this workflow will | |
# - test on | |
# - SLE 12 SP5 | |
# - python 2.7 | |
# - SLE 15 SP5 | |
# - python 3.6 | |
# - deliver the package content to the configured repository | |
# - submit the new package content to the upstream repository | |
on: [push, pull_request] # yamllint disable-line rule:truthy | |
env: | |
PACKAGE_NAME: salt-shaptools | |
jobs: | |
tab: | |
name: 'tabspace checking' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: tab | |
run: make test-tab | |
codespell: | |
name: 'spell checking' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install linting tools | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y git python3 python3-pip | |
python3 -m pip install codespell | |
- name: codespell | |
run: make test-codespell | |
shellcheck: | |
name: 'script syntax check' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install linting tools | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y git python3 python3-pip shellcheck | |
- name: shellcheck | |
run: make test-shellcheck | |
yamllint: | |
name: 'yaml linting' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install linting tools | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y git python3 python3-pip | |
python3 -m pip install yamllint | |
- name: yamllint | |
run: make test-yamllint | |
jsonlint: | |
name: 'json linting' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install linting tools | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y git python3 python3-pip | |
python3 -m pip install jsonlint | |
- name: jsonlint | |
run: make test-jsonlint | |
mlc: | |
name: 'markup link checker' | |
runs-on: ubuntu-22.04 | |
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
# Checkout the repository to the GitHub Actions runner | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install linting tools | |
run: | | |
mkdir -p bin | |
curl -L https://github.com/becheran/mlc/releases/download/v0.14.3/mlc-x86_64-linux -o bin/mlc | |
chmod +x bin/mlc | |
echo "$PWD/bin" >> $GITHUB_PATH | |
- name: mlc | |
run: make test-mlc | |
python: | |
runs-on: ubuntu-22.04 | |
strategy: | |
# do not fail if other test fails | |
fail-fast: false | |
matrix: | |
container: | |
- registry.suse.com/suse/sles12sp5:latest # python 2.7 | |
- registry.suse.com/bci/bci-base:15.5 # python 3.6 | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: Auth to SCC and minimal dependencies | |
run: | | |
echo "username=${{ secrets.SCC_USERNAME }}" >/etc/zypp/credentials.d/SCCcredentials | |
echo "password=${{ secrets.SCC_PASSWORD }}" >>/etc/zypp/credentials.d/SCCcredentials | |
zypper ref -s | |
zypper -n in -y tar gzip git | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: | | |
zypper -n in -y make python | |
if test -f /usr/bin/python3; then | |
# minimal salt, python packages and compilers | |
zypper -n in -y salt python3-pip python3-devel gcc | |
# use current salt version shipped with SLE 15 | |
git clone --branch=openSUSE/release/3006.0 --depth=50 https://github.com/openSUSE/salt ../salt | |
# python 3.6 - official requirements from salt (works with python >3.6) | |
pip install -r ../salt/requirements/pytest.txt | |
pip install -r tests/requirements.3.6.yaml # pinned pytest-cov | |
else | |
zypper -n in -y SUSEConnect | |
SUSEConnect -p sle-module-adv-systems-management/12/x86_64 | |
# minimal salt, python packages and compilers | |
zypper -n in -y salt python-pip python-devel gcc gcc-c++ | |
# python 2.7 - latest available versions for old python release | |
pip install --ignore-installed -r tests/requirements.2.7.yaml | |
# use current salt version shipped with SLE 12 | |
git clone --branch=openSUSE/release/3000.3 --depth=50 https://github.com/openSUSE/salt ../salt | |
fi | |
rm ../salt/tests/conftest.py | |
- name: execute test script | |
run: make test-python | |
delivery: | |
needs: [tab, codespell, shellcheck, yamllint, jsonlint, mlc, python] | |
runs-on: ubuntu-22.04 | |
if: ${{ github.event_name != 'pull_request' }} | |
container: | |
image: shap/continuous_deliver | |
env: | |
OBS_USER: ${{ secrets.OBS_USER }} | |
OBS_PASS: ${{ secrets.OBS_PASS }} | |
OBS_PROJECT: ${{ secrets.OBS_PROJECT }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: configure OSC | |
# OSC credentials must be configured beforehand as the HOME variables cannot be changed from /github/home | |
# that is used to run osc commands | |
run: | | |
/scripts/init_osc_creds.sh | |
mkdir -p $HOME/.config/osc | |
cp /root/.config/osc/oscrc $HOME/.config/osc | |
- name: deliver package | |
run: | | |
sed -i 's~%%VERSION%%~${{ github.sha }}~' _service && \ | |
sed -i 's~%%REPOSITORY%%~${{ github.repository }}~' _service && \ | |
/scripts/upload.sh | |
submit: | |
needs: [tab, codespell, shellcheck, yamllint, jsonlint, mlc, python, delivery] | |
runs-on: ubuntu-22.04 | |
if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master' }} | |
container: | |
image: shap/continuous_deliver | |
env: | |
OBS_USER: ${{ secrets.OBS_USER }} | |
OBS_PASS: ${{ secrets.OBS_PASS }} | |
OBS_PROJECT: ${{ secrets.OBS_PROJECT}} | |
TARGET_PROJECT: ${{ secrets.TARGET_PROJECT}} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: configure OSC | |
# OSC credentials must be configured beforehand as the HOME variables cannot be changed from /github/home | |
# that is used to run osc commands | |
run: | | |
/scripts/init_osc_creds.sh | |
mkdir -p $HOME/.config/osc | |
cp /root/.config/osc/oscrc $HOME/.config/osc | |
- name: submit package | |
run: | | |
sed -i 's~%%VERSION%%~${{ github.sha }}~' _service && \ | |
sed -i 's~%%REPOSITORY%%~${{ github.repository }}~' _service && \ | |
/scripts/submit.sh |