mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-15 22:34:21 +03:00
* Use alternate self-sufficient shellcheck precommit This pre-commit does not require prerequisite on the host, making it easier to run in CI workflows. * Switch to upstream ansible-lint pre-commit hook This way, the hook is self contained and does not depend on a previous virtualenv installation. * pre-commit: fix hooks dependencies - ansible-syntax-check - tox-inventory-builder - jinja-syntax-check * Fix ci-matrix pre-commit hook - Remove dependency of pydblite which fails to setup on recent pythons - Discard shell script and put everything into pre-commit * pre-commit: apply autofixes hooks and fix the rest manually - markdownlint (manual fix) - end-of-file-fixer - requirements-txt-fixer - trailing-whitespace * Convert check_typo to pre-commit + use maintained version client9/misspell is unmaintained, and has been forked by the golangci team, see https://github.com/client9/misspell/issues/197#issuecomment-1596318684. They haven't yet added a pre-commit config, so use my fork with the pre-commit hook config until the pull request is merged. * collection-build-install convert to pre-commit * Run pre-commit hooks in dynamic pipeline Use gitlab dynamic child pipelines feature to have one source of truth for the pre-commit jobs, the pre-commit config file. Use one cache per pre-commit. This should reduce the "fetching cache" time steps in gitlab-ci, since each job will have a separate cache with only its hook installed. * Remove gitlab-ci job done in pre-commit * pre-commit: adjust mardownlint default, md fixes Use a style file as recommended by upstream. This makes for only one source of truth. Conserve previous upstream default for MD007 (upstream default changed here https://github.com/markdownlint/markdownlint/pull/373) * Update pre-commit hooks --------- Co-authored-by: Max Gautier <mg@max.gautier.name>
84 lines
2.1 KiB
YAML
84 lines
2.1 KiB
YAML
---
|
|
stages:
|
|
- build
|
|
- unit-tests
|
|
- deploy-part1
|
|
- moderator
|
|
- deploy-part2
|
|
- deploy-part3
|
|
- deploy-special
|
|
|
|
variables:
|
|
KUBESPRAY_VERSION: v2.24.1
|
|
FAILFASTCI_NAMESPACE: 'kargo-ci'
|
|
GITLAB_REPOSITORY: 'kargo-ci/kubernetes-sigs-kubespray'
|
|
ANSIBLE_FORCE_COLOR: "true"
|
|
MAGIC: "ci check this"
|
|
TEST_ID: "$CI_PIPELINE_ID-$CI_JOB_ID"
|
|
CI_TEST_VARS: "./tests/files/${CI_JOB_NAME}.yml"
|
|
CI_TEST_REGISTRY_MIRROR: "./tests/common/_docker_hub_registry_mirror.yml"
|
|
CI_TEST_SETTING: "./tests/common/_kubespray_test_settings.yml"
|
|
GS_ACCESS_KEY_ID: $GS_KEY
|
|
GS_SECRET_ACCESS_KEY: $GS_SECRET
|
|
CONTAINER_ENGINE: docker
|
|
SSH_USER: root
|
|
GCE_PREEMPTIBLE: "false"
|
|
ANSIBLE_KEEP_REMOTE_FILES: "1"
|
|
ANSIBLE_CONFIG: ./tests/ansible.cfg
|
|
ANSIBLE_INVENTORY: ./inventory/sample/${CI_JOB_NAME}-${BUILD_NUMBER}.ini
|
|
IDEMPOT_CHECK: "false"
|
|
RESET_CHECK: "false"
|
|
REMOVE_NODE_CHECK: "false"
|
|
UPGRADE_TEST: "false"
|
|
MITOGEN_ENABLE: "false"
|
|
ANSIBLE_LOG_LEVEL: "-vv"
|
|
RECOVER_CONTROL_PLANE_TEST: "false"
|
|
RECOVER_CONTROL_PLANE_TEST_GROUPS: "etcd[2:]:kube_control_plane[1:]"
|
|
TERRAFORM_VERSION: 1.3.7
|
|
PIPELINE_IMAGE: "$CI_REGISTRY_IMAGE/pipeline:${CI_PIPELINE_ID}-${CI_COMMIT_SHORT_SHA}"
|
|
|
|
before_script:
|
|
- ./tests/scripts/rebase.sh
|
|
- mkdir -p /.ssh
|
|
|
|
.job: &job
|
|
tags:
|
|
- packet
|
|
image: $PIPELINE_IMAGE
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- cluster-dump/
|
|
|
|
.testcases: &testcases
|
|
<<: *job
|
|
retry: 1
|
|
interruptible: true
|
|
before_script:
|
|
- update-alternatives --install /usr/bin/python python /usr/bin/python3 1
|
|
- ./tests/scripts/rebase.sh
|
|
- ./tests/scripts/testcases_prepare.sh
|
|
script:
|
|
- ./tests/scripts/testcases_run.sh
|
|
after_script:
|
|
- chronic ./tests/scripts/testcases_cleanup.sh
|
|
|
|
# For failfast, at least 1 job must be defined in .gitlab-ci.yml
|
|
# Premoderated with manual actions
|
|
ci-authorized:
|
|
extends: .job
|
|
stage: moderator
|
|
script:
|
|
- /bin/sh scripts/premoderator.sh
|
|
except: ['triggers', 'master']
|
|
# Disable ci moderator
|
|
only: []
|
|
|
|
include:
|
|
- .gitlab-ci/build.yml
|
|
- .gitlab-ci/lint.yml
|
|
- .gitlab-ci/terraform.yml
|
|
- .gitlab-ci/packet.yml
|
|
- .gitlab-ci/vagrant.yml
|
|
- .gitlab-ci/molecule.yml
|