default: image: debian-bookworm:latest tags: - netvs # Change pip's cache directory to be inside the project directory since we can # only cache local items. variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" # Pip's cache doesn't store the python packages # https://pip.pypa.io/en/stable/reference/pip_install/#caching # # If you want to also cache the installed packages, you have to install # them in a virtualenv and cache it as well. cache: paths: - .cache/pip before_script: - apt-get -y update - command -v git || apt-get -y install git - command -v python3 || apt-get -y install python3 - command -v pip3 || apt-get -y install python3-pip twine python3-build - command -v curl || apt-get -y install curl - command -v bsdtar || apt-get -y install libarchive-tools - python3 -V # Print out python version for debugging - python3 -m venv || apt-get -y install python3-venv - if [[ "$CI_COMMIT_BRANCH" != "main" ]]; then sed -i "s%git+https://gitlab.kit.edu/scc-net/netvs/api-generator.git@master%git+https://gitlab.kit.edu/scc-net/netvs/api-generator.git@${CI_COMMIT_BRANCH}%g" pyproject.toml; fi - if [[ "$CI_COMMIT_BRANCH" == "devel" ]]; then export NETDB_ENDPOINT=${NETDB_DEVEL_ENDPOINT}; fi stages: - build build: stage: build resource_group: ${CI_COMMIT_BRANCH} # this prevents parallel (potentially racy) pipeline runs script: - mkdir -p latest - "(curl -LsS \"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/artifacts/${CI_COMMIT_BRANCH}/download?job=build&job_token=${CI_JOB_TOKEN}\" | bsdtar -xf - -C latest) || true" - test -d latest/dist && export LATEST_UTIL_VERSION=$(cd latest/dist; ls *.whl | sed -r 's/.*\+([a-z0-9.]+)-.*/\1/g') - test -d latest/dist && export LATEST_API_VERSION=$(cd latest/dist; ls *.whl | sed -r 's/netdb_client-([0-9]+\.[0-9]+\.[0-9]+).*/\1/g') - test -d latest/dist && export POST_NUM=$(cd latest/dist; ls *.whl | sed -r 's/.*\.post([0-9]+).*/\1/g') - python3 -m build - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi --skip-existing dist/* artifacts: paths: - dist/* expire_in: 7 days only: - main - devel debian: stage: build resource_group: deb-${CI_COMMIT_BRANCH} # this prevents parallel (potentially racy) pipeline runs script: - apt-get install -y --no-install-recommends build-essential cdbs devscripts equivs fakeroot debhelper curl unzip - curl https://gitlab.kit.edu/api/v4/projects/170104/jobs/artifacts/debian/download?job=build | funzip /dev/stdin > api-generator.deb - apt-get install -yf ./api-generator.deb - rm ./api-generator.deb - export PROJECT_ROOT=$(pwd) - mkdir /tmp/build/ - cp -r . /tmp/build/netdb_client - cd /tmp/build/netdb_client/ - mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y --no-install-recommends" - debuild -b -uc -us - cp /tmp/build/*.deb $PROJECT_ROOT artifacts: paths: - ./*.deb expire_in: 7 days only: - debian