Switch to github workflow
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>
This commit is contained in:
parent
c7e15bdbd6
commit
0f779e6577
38
.github/workflows/master.yml
vendored
Normal file
38
.github/workflows/master.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
name: master
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
deploy_containers:
|
||||
name: Build and deploy container images
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- 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
|
||||
- name: Build kas-isar image
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
file: Dockerfile.isar
|
||||
tags: ghcr.io/siemens/kas/kas-isar
|
||||
- name: Push images
|
||||
run: |
|
||||
# The release workflow will push :latest for tagged revisions
|
||||
if ! git describe --exact-match --tags --match '*.*'; then
|
||||
docker push ghcr.io/siemens/kas/kas
|
||||
docker push ghcr.io/siemens/kas/kas-isar
|
||||
fi
|
73
.github/workflows/next.yml
vendored
Normal file
73
.github/workflows/next.yml
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
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
|
45
.github/workflows/release.yml
vendored
Normal file
45
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
name: release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*.*'
|
||||
|
||||
jobs:
|
||||
deploy_containers:
|
||||
name: Build and deploy container images
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Get release
|
||||
run: echo ::set-env name=RELEASE_VERSION::${GITHUB_REF#refs/tags/}
|
||||
- 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:${{ env.RELEASE_VERSION }}
|
||||
ghcr.io/siemens/kas/kas:latest-release
|
||||
- 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:${{ env.RELEASE_VERSION }}
|
||||
ghcr.io/siemens/kas/kas-isar:latest-release
|
||||
- name: Push images
|
||||
run: |
|
||||
docker push ghcr.io/siemens/kas/kas
|
||||
docker push ghcr.io/siemens/kas/kas:${{ env.RELEASE_VERSION }}
|
||||
docker push ghcr.io/siemens/kas/kas:latest-release
|
||||
docker push ghcr.io/siemens/kas/kas-isar
|
||||
docker push ghcr.io/siemens/kas/kas-isar:${{ env.RELEASE_VERSION }}
|
||||
docker push ghcr.io/siemens/kas/kas-isar:latest-release
|
52
.travis.yml
52
.travis.yml
@ -1,52 +0,0 @@
|
||||
language: python
|
||||
dist: xenial
|
||||
|
||||
python:
|
||||
- "3.5"
|
||||
- "3.6"
|
||||
- "3.7"
|
||||
- "3.8"
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
install:
|
||||
# install kas to have all kas dependencies:
|
||||
- pip install .
|
||||
# checkcode dependencies:
|
||||
- pip install flake8 pycodestyle doc8 Pygments
|
||||
# test dependencies:
|
||||
- pip install -U pytest
|
||||
# workaround, needed because kas uses a cleaned-up PATH internally
|
||||
- sudo ln -s /usr/local/bin/hg /usr/bin/
|
||||
|
||||
script:
|
||||
- scripts/checkcode.sh .
|
||||
- pytest
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- stage: docker
|
||||
python: "3.6"
|
||||
script:
|
||||
- docker build -t kasproject/kas .
|
||||
- docker build -t kasproject/kas-isar -f Dockerfile.isar .
|
||||
- TAG=`git describe --exact-match --tags 2>/dev/null || echo "<none>"`
|
||||
- case "$TRAVIS_BRANCH" in
|
||||
master|next|"$TAG")
|
||||
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
|
||||
for IMAGE in kasproject/kas kasproject/kas-isar; do
|
||||
if [ "$TRAVIS_BRANCH" == "$TAG" ]; then
|
||||
docker tag $IMAGE $IMAGE:$TAG;
|
||||
docker push $IMAGE:$TAG;
|
||||
docker tag $IMAGE $IMAGE:latest-release;
|
||||
docker push $IMAGE:latest-release;
|
||||
elif [ "$TRAVIS_BRANCH" == "next" ]; then
|
||||
docker tag $IMAGE $IMAGE:next;
|
||||
docker push $IMAGE:next;
|
||||
else
|
||||
docker push $IMAGE;
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
@ -1,6 +1,6 @@
|
||||
# This image builds Isar jobs using the kas tool
|
||||
|
||||
FROM kasproject/kas:latest
|
||||
FROM ghcr.io/siemens/kas/kas:latest
|
||||
|
||||
ENV LC_ALL=en_US.UTF-8
|
||||
RUN echo 'deb http://deb.debian.org/debian buster-backports main' > /etc/apt/sources.list.d/buster-backports.list && \
|
||||
|
22
README.rst
22
README.rst
@ -1,18 +1,18 @@
|
||||
Setup tool for bitbake based projects
|
||||
=====================================
|
||||
|
||||
+------------+------------------+
|
||||
| Branch | Build Status |
|
||||
+============+==================+
|
||||
| ``master`` | |travis-master|_ |
|
||||
+------------+------------------+
|
||||
| ``next`` | |travis-next|_ |
|
||||
+------------+------------------+
|
||||
+--------------------+
|
||||
| Build Status |
|
||||
+====================+
|
||||
| |workflow-master|_ |
|
||||
+--------------------+
|
||||
| |workflow-next|_ |
|
||||
+--------------------+
|
||||
|
||||
.. |travis-master| image:: https://travis-ci.org/siemens/kas.svg?branch=master
|
||||
.. _travis-master: https://travis-ci.org/siemens/kas/branches
|
||||
.. |travis-next| image:: https://travis-ci.org/siemens/kas.svg?branch=next
|
||||
.. _travis-next: https://travis-ci.org/siemens/kas/branches
|
||||
.. |workflow-master| image:: https://github.com/siemens/kas/workflows/master/badge.svg
|
||||
.. _workflow-master: https://github.com/siemens/kas/actions?query=workflow%3Amaster
|
||||
.. |workflow-next| image:: https://github.com/siemens/kas/workflows/next/badge.svg
|
||||
.. _workflow-next: https://github.com/siemens/kas/actions?query=workflow%3Anext
|
||||
|
||||
This tool provides an easy mechanism to setup bitbake based
|
||||
projects.
|
||||
|
Loading…
Reference in New Issue
Block a user