d0850e95fb
Changed the name of the unit tests CI job to accuratly reflect that both AMD64 and ARM64 tests are executed. Modified the contribution guide to specify that contributors should work inside their own fork of the project.
125 lines
3.1 KiB
YAML
125 lines
3.1 KiB
YAML
variables:
|
|
NO_DOCKER: 1
|
|
FORCE_COLOR: 1
|
|
EARTHLY_EXEC_CMD: "/bin/sh"
|
|
GIT_SUBMODULE_STRATEGY: normal
|
|
|
|
stages:
|
|
- test
|
|
- build_packages
|
|
- release
|
|
- distribute
|
|
|
|
unit_test_linux:
|
|
stage: test
|
|
image: docker
|
|
services:
|
|
- docker:dind
|
|
only:
|
|
- merge_requests
|
|
before_script:
|
|
- apk update && apk add git
|
|
- wget https://github.com/earthly/earthly/releases/download/v0.6.2/earthly-linux-amd64 -O /usr/local/bin/earthly
|
|
- chmod +x /usr/local/bin/earthly
|
|
- earthly bootstrap
|
|
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
script:
|
|
- if [ "$CI_COMMIT_BRANCH" == "main" ]; then cache_args="--save-inline-cache --push"; fi
|
|
- if [ "$CI_PROJECT_PATH" != "veilid/veilid" ]; then project_args="--CI_PROJECT_PATH=$CI_PROJECT_PATH"; fi
|
|
- earthly --use-inline-cache $cache_args --ci +unit-tests-linux $project_args
|
|
resource_group: test
|
|
|
|
release_job:
|
|
stage: release
|
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
script:
|
|
- echo "running release_job"
|
|
release: # See https://docs.gitlab.com/ee/ci/yaml/#release for available properties
|
|
tag_name: '$CI_COMMIT_TAG'
|
|
description: '$CI_COMMIT_TAG'
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
create_build_machines:
|
|
stage: build_packages
|
|
tags:
|
|
- build-orchestration
|
|
script:
|
|
- /home/gitlab-runner/build-machine-ctl.sh create amd64-deb
|
|
- /home/gitlab-runner/build-machine-ctl.sh create arm64-deb
|
|
- /home/gitlab-runner/build-machine-ctl.sh create amd64-rpm
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
package_amd64_deb:
|
|
stage: build_packages
|
|
needs:
|
|
- create_build_machines
|
|
tags:
|
|
- build-amd64-deb
|
|
script:
|
|
- earthly bootstrap
|
|
- earthly +package-linux-amd64-deb
|
|
- /home/gitlab-runner/scp-to-orchestrator.sh
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
package_arm64_deb:
|
|
stage: build_packages
|
|
needs:
|
|
- create_build_machines
|
|
tags:
|
|
- build-arm64-deb
|
|
script:
|
|
- earthly bootstrap
|
|
- earthly +package-linux-arm64-deb
|
|
- /home/gitlab-runner/scp-to-orchestrator.sh
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
package_amd64_rpm:
|
|
stage: build_packages
|
|
needs:
|
|
- create_build_machines
|
|
tags:
|
|
- build-amd64-rpm
|
|
script:
|
|
- earthly bootstrap
|
|
- earthly +package-linux-amd64-rpm
|
|
- /home/gitlab-runner/scp-to-orchestrator.sh
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
build_repositories:
|
|
stage: distribute
|
|
tags:
|
|
- build-orchestration
|
|
script:
|
|
- /home/gitlab-runner/distribute-packages.sh
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
deploy_repos:
|
|
stage: distribute
|
|
needs:
|
|
- build_repositories
|
|
tags:
|
|
- repo-server
|
|
script:
|
|
- /home/gitlab-runner/deploy-repo.sh
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|
|
|
|
delete_build_machines:
|
|
stage: distribute
|
|
needs:
|
|
- deploy_repos
|
|
tags:
|
|
- build-orchestration
|
|
script:
|
|
- /home/gitlab-runner/build-machine-ctl.sh delete amd64-deb
|
|
- /home/gitlab-runner/build-machine-ctl.sh delete arm64-deb
|
|
- /home/gitlab-runner/build-machine-ctl.sh delete amd64-rpm
|
|
rules:
|
|
- if: '$CI_COMMIT_TAG =~ /v\d.+/'
|