Only Ubuntu 20.04 is still supported with 3.5 and 3.6, so pin to it. Expand the test to 3.10 and 3.11 at this chance. Quoting is needed now to avoid that 3.10 becomes 3.1. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
113 lines
4.0 KiB
YAML
113 lines
4.0 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-20.04
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
|
|
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
|
|
|
|
build_containers:
|
|
name: Build, test 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:
|
|
load: true
|
|
tags: ghcr.io/siemens/kas/kas:next
|
|
- name: Test kas image
|
|
run: |
|
|
cd image-tests/poky
|
|
KAS_IMAGE_VERSION=next ../../kas-container build kas.yml
|
|
- name: Complete build and deploy kas image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
tags: ghcr.io/siemens/kas/kas:next
|
|
push: true
|
|
- name: Build kas-isar image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
target: kas-isar
|
|
load: true
|
|
tags: ghcr.io/siemens/kas/kas-isar:next
|
|
- name: Test kas-isar image
|
|
run: |
|
|
cd image-tests/isar
|
|
KAS_IMAGE_VERSION=next ../../kas-container build kas.yml
|
|
- name: Complete build and deploy kas-isar image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
target: kas-isar
|
|
platforms: linux/amd64,linux/arm64
|
|
tags: ghcr.io/siemens/kas/kas-isar:next
|
|
push: true
|