1
0
Fork 0
onnx-web/.gitlab-ci.yml

174 lines
3.3 KiB
YAML

stages:
- build
- package
.build-base:
tags:
- platform:k8s
- runner:shared
.build-node:
extends:
- .build-base
image: docker.io/node:18
artifacts:
expire_in: 1 day
paths:
- gui/out/
reports:
coverage_report:
coverage_format: cobertura
path: gui/out/coverage/cobertura-coverage.xml
junit: gui/out/test-results.xml
cache:
key:
files:
- yarn.lock
paths:
- gui/node_modules/
policy: pull-push
.build-oci:
extends:
- .build-base
image: docker.io/docker:20.10
services:
- docker.io/docker:20.10-dind
allow_failure: false
before_script:
- mkdir ${HOME}/.docker
- echo "${DOCKER_SECRET}" | base64 -d > ${HOME}/.docker/config.json
after_script:
- rm -rfv ${HOME}/.docker
variables:
DOCKER_CERT_PATH: "/shared/docker/client"
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://localhost:2376
DOCKER_NAME: "${CI_PROJECT_PATH}"
DOCKER_TLS_CERTDIR: "/shared/docker"
DOCKER_TLS_VERIFY: 1
VERSION_TAG: "${CI_COMMIT_REF_SLUG}"
.build-python:
extends:
- .build-base
image: docker.io/python:3.10
build-api-coverage:
extends:
- .build-python
stage: build
script:
- cd api
- make ci
build-gui-bundle:
extends:
- .build-node
stage: build
script:
- cd gui
- make ci
.package-api-oci:
extends:
- .build-oci
stage: package
needs:
- build-api-coverage
script:
- cd api
- ${CI_PROJECT_DIR}/common/scripts/image-build.sh --push
variables:
IMAGE_ROOT: "${CI_PROJECT_DIR}/api"
IMAGE_SUFFIX: api
.package-gui-oci:
extends:
- .build-oci
stage: package
needs:
- build-gui-bundle
script:
- cd gui
- ${CI_PROJECT_DIR}/common/scripts/image-build.sh --push
variables:
IMAGE_ROOT: "${CI_PROJECT_DIR}/gui"
IMAGE_SUFFIX: gui
# no API image for alpine: https://github.com/microsoft/onnxruntime/issues/2909#issuecomment-593591317
# package-api-oci-alpine:
# extends:
# - .package-api-oci
# variables:
# IMAGE_ARCH: alpine
# IMAGE_FILE: Containerfile.alpine
package-api-oci-cpu-buster:
extends:
- .package-api-oci
variables:
IMAGE_ARCH: cpu-buster
IMAGE_FILE: Containerfile.cpu.buster
package-api-oci-cuda-buster:
extends:
- .package-api-oci
variables:
IMAGE_ARCH: cuda-buster
IMAGE_FILE: Containerfile.cuda.buster
package-gui-oci-nginx-alpine:
extends:
- .package-gui-oci
variables:
IMAGE_ARCH: nginx-alpine
IMAGE_FILE: Containerfile.nginx.alpine
package-gui-oci-nginx-bullseye:
extends:
- .package-gui-oci
variables:
IMAGE_ARCH: nginx-bullseye
IMAGE_FILE: Containerfile.nginx.bullseye
package-gui-oci-node-alpine:
extends:
- .package-gui-oci
variables:
IMAGE_ARCH: node-alpine
IMAGE_FILE: Containerfile.node.alpine
package-gui-oci-node-buster:
extends:
- .package-gui-oci
variables:
IMAGE_ARCH: node-buster
IMAGE_FILE: Containerfile.node.buster
package-api-twine:
extends:
- .build-node
stage: package
needs:
- build-api-coverage
only:
- tags
script:
- cd api
- python -m build
- twine check dist/*
- twine upload dist/*
package-gui-npm:
extends:
- .build-node
stage: package
needs:
- build-gui-bundle
only:
- tags
script:
- cd gui
- npm publish