Heavily copy-pasted from the QEMU source tree, with bits and pieces not needed for this repository trimmed down.
Signed-off-by: John Snow <js...@redhat.com> --- .gitlab-ci.d/containers.yml | 28 ++++++++++++++++++++++++++++ .gitlab-ci.d/index.yml | 8 ++++++++ .gitlab-ci.d/python.Dockerfile | 31 +++++++++++++++++++++++++++++++ .gitlab-ci.yml | 3 +++ INDEX.rst | 2 ++ 5 files changed, 72 insertions(+) create mode 100644 .gitlab-ci.d/containers.yml create mode 100644 .gitlab-ci.d/index.yml create mode 100644 .gitlab-ci.d/python.Dockerfile create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml new file mode 100644 index 0000000..fdcbbe4 --- /dev/null +++ b/.gitlab-ci.d/containers.yml @@ -0,0 +1,28 @@ +# Heavily inspired-by/copy-pasted-from the +# container template from the QEMU source tree. + +.container_job_template: + image: docker:stable + stage: containers + services: + - docker:dind + before_script: + - export TAG="$NAME" + - export FQTAG="$CI_REGISTRY_IMAGE/$TAG:latest" + - docker info + - docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + script: + - echo "TAG:$TAG" + - echo "FQTAG:$FQTAG" + - cd .gitlab-ci.d + - docker pull "$FQTAG" + - docker build --cache-from "$FQTAG" -t "$TAG" -f "$NAME.Dockerfile" . + - docker tag "$TAG" "$FQTAG" + - docker push "$FQTAG" + after_script: + - docker logout + +python-container: + extends: .container_job_template + variables: + NAME: python diff --git a/.gitlab-ci.d/index.yml b/.gitlab-ci.d/index.yml new file mode 100644 index 0000000..5ef8fcf --- /dev/null +++ b/.gitlab-ci.d/index.yml @@ -0,0 +1,8 @@ +# This file contains the set of jobs run by this project: +# https://gitlab.com/jsnow/qemu.qmp/-/pipelines + +stages: + - containers + +include: + - local: '/.gitlab-ci.d/containers.yml' diff --git a/.gitlab-ci.d/python.Dockerfile b/.gitlab-ci.d/python.Dockerfile new file mode 100644 index 0000000..9501ed4 --- /dev/null +++ b/.gitlab-ci.d/python.Dockerfile @@ -0,0 +1,31 @@ +# Python library build & testing environment. + +# Fedora is convenient, as it allows us to easily access multiple +# versions of the python interpreter, which is great for tox testing. +FROM fedora:latest + +# 「はじめまして!」 +MAINTAINER John Snow <js...@redhat.com> + +# Please keep the packages sorted alphabetically. +RUN dnf --setopt=install_weak_deps=False install -y \ + gcc \ + git \ + make \ + pipenv \ + python3 \ + python3-pip \ + python3-tox \ + python3-virtualenv \ + python3.10 \ + python3.6 \ + python3.7 \ + python3.8 \ + python3.9 \ + && python3 -m pip install --upgrade \ + build \ + pip \ + && dnf clean all \ + && rm -rf ~/.cache/pip \ + && rm -rf /var/cache/dnf \ + ; diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..f93a1e1 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,3 @@ +# Hello, is it me you're looking for? +include: + - local: '/.gitlab-ci.d/index.yml' diff --git a/INDEX.rst b/INDEX.rst index 9c45740..8b7a56a 100644 --- a/INDEX.rst +++ b/INDEX.rst @@ -47,6 +47,8 @@ Files in this directory - ``qemu/`` Python 'qemu' namespace package source directory. - ``tests/`` Python package tests directory. +- ``.gitlab-ci.d/`` Files used for GitLab CI configuration. +- ``.gitlab-ci.yml`` Primary GitLab CI configuration file. - ``avocado.cfg`` Configuration for the Avocado test-runner. Used by ``make check`` et al. - ``INDEX.rst`` you are here! -- 2.31.1