0f779e6577
Add the github/ghcr equivalent to travis/dockerhub. With this in place, we can also deploy the next and latest images to ghcr. Adjust Dockerfile.isar accordingly. Also update the badge shown in the README. We model the workflow with github a bit differently than so far: next and master branch are different workflows. The former includes testing, the latter just updates the container image. This is based on the (offline) workflow to push changes to next first and have no commits in master that haven't been in next before, except for release commits. The master workflow also triggers on tags in which case it additionally tags the container images accordingly and pushed that as well. Travis is removed in the same run to avoid pushing differently built images to the different registries. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
name: next
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- next
|
|
|
|
env:
|
|
SHELLCHECK_VERSION: v0.7.1
|
|
|
|
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]
|
|
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
|
|
tar -xJf shellcheck-$SHELLCHECK_VERSION.linux.x86_64.tar.xz
|
|
sudo cp shellcheck-$SHELLCHECK_VERSION/shellcheck /usr/local/bin/
|
|
- name: Run tests
|
|
run: |
|
|
scripts/checkcode.sh .
|
|
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: 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:
|
|
tags: |
|
|
ghcr.io/siemens/kas/kas
|
|
ghcr.io/siemens/kas/kas:next
|
|
- name: Build kas-isar image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
file: Dockerfile.isar
|
|
tags: |
|
|
ghcr.io/siemens/kas/kas-isar
|
|
ghcr.io/siemens/kas/kas-isar:next
|
|
- name: Push images
|
|
run: |
|
|
docker push ghcr.io/siemens/kas/kas:next
|
|
docker push ghcr.io/siemens/kas/kas-isar:next
|