From e9c6e44befe8587384a30afc384b639a5f803040 Mon Sep 17 00:00:00 2001 From: Adam Shamblin Date: Sun, 25 Sep 2022 18:18:48 -0600 Subject: [PATCH] add earthly build to cicd --- .gitlab-ci.yml | 94 +++++++------------------------------------------- 1 file changed, 13 insertions(+), 81 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1aef5266..35db32ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,82 +1,14 @@ -variables: - GIT_SUBMODULE_STRATEGY: recursive - BUILD_IMAGE_LINUX_AMD64: $CI_REGISTRY/veilid/ci-cd/veilid-build-linux-amd64:latest - -stages: - - clippy - - test - - build - -############# Clippy Lint - -clippy: - stage: clippy - image: ${BUILD_IMAGE_LINUX_AMD64} - cache: - key: $CI_COMMIT_REF_SLUG-linux-amd64 - paths: - - target/ - tags: - - linux - - amd64 +image: docker +services: + - docker:dind +before_script: + - apk update && apk add git + - wget https://github.com/earthly/earthly/releases/download/v0.6.23/earthly-linux-amd64 -O /usr/local/bin/earthly + - chmod +x /usr/local/bin/earthly + - export FORCE_COLOR=1 + - /usr/local/bin/earthly bootstrap + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY +earthly: + stage: package-linux script: - - cargo clippy - # Only run clippy on non-protected branches, for development - rules: - - if: $CI_COMMIT_TAG - when: never - - if: $CI_MERGE_REQUEST_IID - when: never - - if: $CI_COMMIT_REF_PROTECTED == "false" - -############# Unit Testing - -.test_rules_common: - # Only do tests for tags, protected branches, or merge requests - rules: - - if: $CI_COMMIT_TAG - - if: $CI_MERGE_REQUEST_IID - - if: $CI_COMMIT_REF_PROTECTED == "true" - -test_linux_amd64: - stage: test - image: ${BUILD_IMAGE_LINUX_AMD64} - cache: - key: $CI_COMMIT_REF_SLUG-linux-amd64 - paths: - - target/ - tags: - - linux - - amd64 - script: - - RUST_BACKTRACE=1 dbus-run-session -- cargo test -- --nocapture - rules: - - !reference [.test_rules_common, rules] - -############# Build - -.build_rules_common: - # Only build for tags or protected branches - rules: - - if: $CI_COMMIT_TAG - - if: $CI_COMMIT_REF_PROTECTED == "true" - -build_linux_amd64: - stage: build - image: ${BUILD_IMAGE_LINUX_AMD64} - cache: - key: $CI_COMMIT_REF_SLUG-linux-amd64 - paths: - - target/ - tags: - - linux - - amd64 - script: - - cargo build --release - artifacts: - name: $CI_COMMIT_REF_SLUG-linux-amd64 - paths: - - target/release/veilid-cli - - target/release/veilid-server - rules: - - !reference [.build_rules_common, rules] + - earthly --ci --push -P +build