stages: - protoc - build - deploy cache: key: ${CI_COMMIT_REF_SLUG} paths: - "**/Package.resolved" - "**/.build/" - .gradle/ protoc_gen: image: vato.ddns.net:8083/gradle:6.7.1 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