mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'xMAC94x/cleanup_ci' into 'master'
remove duplicate airshipper ci jobs. Introduce weekly build. See merge request veloren/veloren!3286
This commit is contained in:
commit
d409a67984
@ -14,6 +14,7 @@ variables:
|
||||
GIT_DEPTH: 3
|
||||
GIT_CLEAN_FLAGS: -f
|
||||
CACHE_IMAGE_TAG: d7756444
|
||||
TAG_REGEX: '/^v[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||
|
||||
default:
|
||||
# https://docs.gitlab.com/ee/ci/pipelines/settings.html#auto-cancel-pending-pipelines
|
||||
|
@ -194,38 +194,6 @@ macos-aarch64:
|
||||
- .release
|
||||
tags: ["veloren/veloren:macos", "build", "publish", "trusted"]
|
||||
|
||||
# The air-* builds are the builds that Airshipper Server expects to find in the scheduled build webhook JSON.
|
||||
# Renaming these will break Airshipper downloads! build on schedule quickfix till airshipper 0.5
|
||||
air-linux-x86_64:
|
||||
extends:
|
||||
- .tlinux-x86_64
|
||||
- .release-scheduled
|
||||
tags: ["veloren/veloren", "build", "publish", "trusted"]
|
||||
|
||||
air-linux-aarch64:
|
||||
extends:
|
||||
- .tlinux-aarch64
|
||||
- .release-scheduled
|
||||
tags: ["veloren/veloren", "build", "publish", "trusted"]
|
||||
|
||||
air-windows-x86_64:
|
||||
extends:
|
||||
- .twindows-x86_64
|
||||
- .release-scheduled
|
||||
tags: ["veloren/veloren", "build", "publish", "trusted"]
|
||||
|
||||
air-macos-x86_64:
|
||||
extends:
|
||||
- .tmacos-x86_64
|
||||
- .release-scheduled
|
||||
tags: ["veloren/veloren:macos", "build", "publish", "trusted"]
|
||||
|
||||
air-macos-aarch64:
|
||||
extends:
|
||||
- .tmacos-aarch64
|
||||
- .release-scheduled
|
||||
tags: ["veloren/veloren:macos", "build", "publish", "trusted"]
|
||||
|
||||
# if NOT release or master, allow optional builds
|
||||
opt-linux-x86_64:
|
||||
extends:
|
||||
|
@ -1,10 +1,11 @@
|
||||
# cargo clippy is a superset of cargo check, so we don't check manually
|
||||
code-quality:
|
||||
extends: .recompile-branch
|
||||
stage: check
|
||||
image: registry.gitlab.com/veloren/veloren-docker-ci/cache/quality:${CACHE_IMAGE_TAG}
|
||||
tags: ["veloren/veloren", "check"]
|
||||
script:
|
||||
- echo $CI_COMMIT_TAG
|
||||
- echo $TAG_REGEX
|
||||
- ln -s /dockercache/target target
|
||||
- cat ./.gitlab/scripts/code-quality.sh
|
||||
- source ./.gitlab/scripts/code-quality.sh
|
||||
|
@ -3,16 +3,11 @@
|
||||
.publish:
|
||||
stage: publish
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE != "schedule"
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.publish-nightly:
|
||||
stage: publish
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
when: on_success
|
||||
- when: never
|
||||
before_script:
|
||||
- source "$CI_PROJECT_DIR/.gitlab/scripts/utils.sh"
|
||||
|
||||
docker:
|
||||
extends: .publish
|
||||
@ -29,27 +24,16 @@ docker:
|
||||
# avoids this issue: https://github.com/GoogleContainerTools/kaniko/issues/1542
|
||||
- export container=docker
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/server-cli/Dockerfile --destination "${CI_REGISTRY_IMAGE}/server-cli:${CI_COMMIT_REF_NAME}"
|
||||
- |
|
||||
publishdockertag PUBLISH_DOCKER_TAG
|
||||
if [ "${PUBLISH_DOCKER_TAG}" != "" ]; then
|
||||
/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/server-cli/Dockerfile --destination "${CI_REGISTRY_IMAGE}/server-cli:${PUBLISH_DOCKER_TAG}"
|
||||
fi
|
||||
|
||||
docker-nightly:
|
||||
extends: .publish-nightly
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [""]
|
||||
tags: ["veloren/veloren", "publish", "trusted"]
|
||||
dependencies:
|
||||
- air-linux-x86_64
|
||||
before_script:
|
||||
- ls "$CI_PROJECT_DIR/server-cli/"
|
||||
script:
|
||||
# Help kaniko identify that it is running in a container.
|
||||
# avoids this issue: https://github.com/GoogleContainerTools/kaniko/issues/1542
|
||||
- export container=docker
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/server-cli/Dockerfile --destination "${CI_REGISTRY_IMAGE}/server-cli:nightly"
|
||||
|
||||
tag-nightly:
|
||||
extends: .publish-nightly
|
||||
gittag:
|
||||
extends: .publish
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"
|
||||
image: registry.gitlab.com/veloren/veloren-docker-ci/cache/quality:${CACHE_IMAGE_TAG}
|
||||
tags: ["veloren/veloren", "publish", "trusted"]
|
||||
script:
|
||||
@ -57,11 +41,16 @@ tag-nightly:
|
||||
- git config --global user.name "veloren-bot"
|
||||
- git config --global http.postBuffer 52428800
|
||||
- git remote set-url origin https://veloren-bot:${GITLAB_TOKEN_WRITE}@${CI_PROJECT_URL:8}
|
||||
- git tag -a "nightly" -m '' -f
|
||||
- git push origin nightly -f
|
||||
- |
|
||||
if [[ ! "${SCHEDULE_CADENCE}" =~ ${TAG_REGEX} ]]; then
|
||||
git tag -a "${SCHEDULE_CADENCE}" -m '' -f;
|
||||
git push origin "${SCHEDULE_CADENCE}" -f;
|
||||
fi
|
||||
|
||||
pages:
|
||||
extends: .publish
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE != "schedule"
|
||||
image: registry.gitlab.com/veloren/veloren-docker-ci/cache/quality:${CACHE_IMAGE_TAG}
|
||||
tags: ["veloren/veloren", "publish"]
|
||||
artifacts:
|
||||
|
@ -2,28 +2,16 @@
|
||||
.optional-release:
|
||||
stage: check
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != "merge_request_event" || $CI_PIPELINE_SOURCE == "schedule" || $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+/ || $CI_COMMIT_REF_NAME =~ /^r[0-9]+\.[0-9]+/
|
||||
- if: $CI_PIPELINE_SOURCE != "merge_request_event" || $CI_PIPELINE_SOURCE == "schedule" || ( $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $TAG_REGEX )
|
||||
when: never
|
||||
- when: manual
|
||||
allow_failure: true
|
||||
|
||||
# Template to only run if pushes to master, a version tag, or release branch happened
|
||||
# Template to only run if pushes to master, schedule or a version tag
|
||||
.release:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_PIPELINE_SOURCE != "schedule" && ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+/ || $CI_COMMIT_REF_NAME =~ /^r[0-9]+\.[0-9]+/)
|
||||
when: on_success
|
||||
- when: never
|
||||
retry:
|
||||
max: 1
|
||||
|
||||
# Template to only run if pushes to master or a tag happened for scheduled builds
|
||||
# This is a temporary fix until Airshipper can use a different mechanism of identifying jobs it should take
|
||||
# artifacts from. Once this is done the air-* jobs can be removed.
|
||||
.release-scheduled:
|
||||
stage: build-nightly
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule" && ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+/ || $CI_COMMIT_REF_NAME =~ /^r[0-9]+\.[0-9]+/)
|
||||
- if: $CI_PIPELINE_SOURCE != "merge_request_event" && ( $CI_PIPELINE_SOURCE == "schedule" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || ( $CI_COMMIT_TAG != null && $CI_COMMIT_TAG =~ $TAG_REGEX ) )
|
||||
when: on_success
|
||||
- when: never
|
||||
retry:
|
||||
|
@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
# cargo clippy is a superset of cargo check, so we don't check manually
|
||||
time cargo clippy --all-targets --locked --features="bin_cmd_doc_gen,bin_compression,bin_csv,bin_graphviz,bin_bot,bin_asset_migrate,asset_tweak" -- -D warnings &&
|
||||
# Ensure that the veloren-voxygen default-publish feature builds as it excludes some default features
|
||||
time cargo clippy -p veloren-voxygen --locked --no-default-features --features="default-publish" -- -D warnings &&
|
||||
|
29
.gitlab/scripts/util.sh
Executable file
29
.gitlab/scripts/util.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
### returns respective DOCKER TAG
|
||||
### release-tag => <release-tag> (e.g. v1.2.3)
|
||||
### schedule => <SCHEDULE_CADENCE> (e.g. nightly)
|
||||
### master => "master"
|
||||
### else => ""
|
||||
publishdockertag () {
|
||||
# this stores the result in a variable defined by the caller
|
||||
local -n VAR=$1
|
||||
VAR="";
|
||||
if [[ "${CI_COMMIT_TAG}" =~ ${TAG_REGEX} ]]; then
|
||||
VAR="${CI_COMMIT_TAG}";
|
||||
return 0;
|
||||
fi
|
||||
if [[ -z "${SCHEDULE_CADENCE}" && ${CI_PIPELINE_SOURCE} == "schedule" ]]; then
|
||||
# sanitize check
|
||||
if [[ "${SCHEDULE_CADENCE}" =~ ${TAG_REGEX} ]]; then
|
||||
VAR="invalid_cadence";
|
||||
else
|
||||
VAR="${SCHEDULE_CADENCE}";
|
||||
fi
|
||||
return 0;
|
||||
fi
|
||||
if [[ ${CI_COMMIT_BRANCH} == ${CI_DEFAULT_BRANCH} ]]; then
|
||||
VAR="master";
|
||||
return 0;
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user