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-buster: extends: - .package-api-oci variables: IMAGE_ARCH: buster IMAGE_FILE: Containerfile.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-bullseye: 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 - echo make package package-gui-npm: extends: - .build-node stage: package needs: - build-gui-bundle only: - tags script: - cd gui - npm publish