This checks basic features of kas menu, some option selection, yaml including, rebuilding and target selection. The UI is operated by mocking smack's GridFormHelp.runOnce and some result evaluation functions. Injecting keys from the keyboard was not easily possibly (if at all), thus this approach. The menu rendering is not shown due to pytest. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
95 lines
3.3 KiB
YAML
95 lines
3.3 KiB
YAML
name: next
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- next
|
|
|
|
env:
|
|
SHELLCHECK_VERSION: v0.7.1
|
|
SHELLCHECK_SHA256: 64f17152d96d7ec261ad3086ed42d18232fcb65148b44571b564d688269d36c8
|
|
NEWT_VERSION: 0.52.21
|
|
NEWT_SHA256: 265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31
|
|
|
|
jobs:
|
|
perform_tests:
|
|
name: Run tests on kas code
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
|
|
steps:
|
|
- name: Check out repo
|
|
uses: actions/checkout@v2
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
architecture: x64
|
|
- name: Install Python dependencies of kas and tests
|
|
run: |
|
|
# install kas to have all kas dependencies:
|
|
pip install .
|
|
# checkcode dependencies:
|
|
pip install flake8 pycodestyle doc8 Pygments
|
|
# test dependencies:
|
|
pip install -U pytest
|
|
- name: Install recent shellcheck
|
|
run: |
|
|
wget -q https://github.com/koalaman/shellcheck/releases/download/$SHELLCHECK_VERSION/shellcheck-$SHELLCHECK_VERSION.linux.x86_64.tar.xz
|
|
echo "$SHELLCHECK_SHA256 shellcheck-$SHELLCHECK_VERSION.linux.x86_64.tar.xz" | sha256sum -c
|
|
tar -xJf shellcheck-$SHELLCHECK_VERSION.linux.x86_64.tar.xz
|
|
sudo cp shellcheck-$SHELLCHECK_VERSION/shellcheck /usr/local/bin/
|
|
- name: Install python-newt
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install libpopt-dev libslang2-dev
|
|
wget -q https://releases.pagure.org/newt/newt-$NEWT_VERSION.tar.gz
|
|
echo "$NEWT_SHA256 newt-$NEWT_VERSION.tar.gz" | sha256sum -c
|
|
tar -C /tmp -xzf newt-$NEWT_VERSION.tar.gz
|
|
cd /tmp/newt-$NEWT_VERSION
|
|
autoconf
|
|
./configure --with-python=python${{ matrix.python-version }}
|
|
make -j $(nproc)
|
|
sudo make install
|
|
ln -s /usr/local/lib/python${{ matrix.python-version }}/site-packages/_snack.so \
|
|
$(python3 -c 'import site; print(site.getsitepackages()[0])')/
|
|
ln -s /usr/local/lib/python${{ matrix.python-version }}/site-packages/snack.py \
|
|
$(python3 -c 'import site; print(site.getsitepackages()[0])')/
|
|
- name: Run tests
|
|
run: |
|
|
scripts/checkcode.sh .
|
|
TERM=xterm pytest
|
|
|
|
deploy_containers:
|
|
name: Build and deploy container images
|
|
needs: perform_tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repo
|
|
uses: actions/checkout@v2
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Login to ghcr.io
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ secrets.PACKAGE_DEPLOY_USER }}
|
|
password: ${{ secrets.PACKAGE_DEPLOY_TOKEN }}
|
|
- name: Build kas image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
push: true
|
|
tags: ghcr.io/siemens/kas/kas:next
|
|
- name: Build kas-isar image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
file: Dockerfile.isar
|
|
platforms: linux/amd64,linux/arm64
|
|
build-args: KAS_TAG=next
|
|
push: true
|
|
tags: ghcr.io/siemens/kas/kas-isar:next
|