101 lines
2.3 KiB
YAML
101 lines
2.3 KiB
YAML
stages:
|
|
- protoc
|
|
- build
|
|
- deploy
|
|
|
|
cache:
|
|
key: ${CI_COMMIT_REF_SLUG}
|
|
paths:
|
|
- "**/Package.resolved"
|
|
- "**/.build/"
|
|
- .gradle/
|
|
|
|
protoc_gen:
|
|
image: vato.ddns.net:8083/gradle
|
|
stage: protoc
|
|
rules:
|
|
- changes:
|
|
- protobuf/*
|
|
artifacts:
|
|
paths:
|
|
- "./**/*pb2*"
|
|
- "./SwiftyCar/Sources/**/*.pb.swift"
|
|
- "./SwiftyCar/Sources/**/*.grpc.swift"
|
|
- "./CarControlleriOS/Sources/**/*.pb.swift"
|
|
- "./CarControlleriOS/Sources/**/*.grpc.swift"
|
|
expire_in: 30 days
|
|
script:
|
|
- gradle :pycar:copyPythonCode
|
|
- gradle :SwiftyCar:copySwiftCode
|
|
- gradle :CarControlleriOS:copySwiftCode
|
|
|
|
build_pycar:
|
|
image: vato.ddns.net:8083/python-infra:buster
|
|
stage: build
|
|
rules:
|
|
- changes:
|
|
- pycar/*
|
|
needs:
|
|
- protoc_gen
|
|
script:
|
|
- cd pycar && python setup.py bdist_wheel && cd ..
|
|
|
|
build_pycar_docker:
|
|
image: vato.ddns.net:8083/docker
|
|
stage: build
|
|
rules:
|
|
- changes:
|
|
- pycar/*
|
|
needs:
|
|
- protoc_gen
|
|
script:
|
|
- echo ${DOCKER_PASSWORD} | docker login vato.ddns.net:8083 --username ${DOCKER_USERNAME} --password-stdin
|
|
- docker build -f pycar/Dockerfile --build-arg PYPI_USERNAME=${PYPI_USERNAME} --build-arg PYPI_PASSWORD=${PYPI_PASSWORD} -t vato.ddns.net:8082/pycar:latest pycar
|
|
|
|
built_swift_car:
|
|
image: vato.ddns.net:8083/swift
|
|
stage: build
|
|
rules:
|
|
- changes:
|
|
- SwiftyCar/*
|
|
- protobuf/*
|
|
needs:
|
|
- protoc_gen
|
|
script:
|
|
- cd SwiftyCar && swift build
|
|
|
|
build_esp32:
|
|
image: vato.ddns.net:8083/shaguarger/platformio
|
|
stage: build
|
|
rules:
|
|
- changes:
|
|
- esp32/*
|
|
script:
|
|
- platformio ci --project-conf esp32/platformio.ini esp32
|
|
|
|
deploy_pycar:
|
|
image: vato.ddns.net:8083/python-infra:buster
|
|
stage: deploy
|
|
needs:
|
|
- build_pycar
|
|
script:
|
|
- cd pycar && python -m twine upload -u $TWINE_COMMON_CREDS_USR -p $TWINE_COMMON_CREDS_PSW dist/* && cd ..
|
|
only:
|
|
- tags
|
|
|
|
deploy_pycar_docker:
|
|
image: vato.ddns.net:8083/docker
|
|
stage: deploy
|
|
script:
|
|
- echo ${DOCKER_PASSWORD} | docker login vato.ddns.net:8082 --username ${DOCKER_USERNAME} --password-stdin
|
|
- docker push vato.ddns.net:8082/pycar:latest
|
|
needs:
|
|
- build_pycar_docker
|
|
only:
|
|
- tags
|
|
|
|
deploy_pycar_docker_arm:
|
|
extends: deploy_pycar_docker
|
|
tags:
|
|
- docker-arm
|