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 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