mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-22 21:10:22 +00:00
3482cb7091
Earlier we were running all the linter for non-go files in one short, this wont be helpful for the users who want to run particular tests. now the Makefile as different target to run separate lint test for different type of non-go files. Fixes: #979 Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
136 lines
4.1 KiB
YAML
136 lines
4.1 KiB
YAML
---
|
|
# need for docker build
|
|
sudo: true
|
|
dist: xenial
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- realpath
|
|
- ruby
|
|
- socat
|
|
services:
|
|
- docker
|
|
|
|
language: go
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
go: 1.13.x
|
|
|
|
env:
|
|
global:
|
|
- GOLANGCI_VERSION=v1.21.0
|
|
- GO111MODULE=on
|
|
- GOSEC_VERSION=2.0.0
|
|
- TEST_COVERAGE=stdout
|
|
- GO_METALINTER_THREADS=1
|
|
- GO_COVER_DIR=_output
|
|
- HELM_VERSION=v3.1.2
|
|
- VM_DRIVER=none
|
|
- MINIKUBE_VERSION=v1.6.0
|
|
- CHANGE_MINIKUBE_NONE_USER=true
|
|
- KUBECONFIG=$HOME/.kube/config
|
|
# set CEPH_CSI_RUN_ALL_TESTS to non-empty to run all tests
|
|
- CEPH_CSI_RUN_ALL_TESTS=true
|
|
|
|
before_install:
|
|
- mkdir -p $GOPATH/bin
|
|
|
|
before_script:
|
|
- curl https://download.ceph.com/keys/release.asc | sudo apt-key add -
|
|
- sudo apt-add-repository
|
|
"deb https://download.ceph.com/debian-nautilus xenial main"
|
|
# Ceph does not guarantee arm64 builds, fallback to ceph 14.2.5
|
|
# yamllint disable rule:line-length
|
|
- test "$(arch)" != "aarch64" || sudo apt-add-repository
|
|
"deb https://chacra.ceph.com/r/ceph/nautilus/af06652dc9b2da8c6aadbbecdfafdc7e235abe7d/ubuntu/xenial/flavors/default/ xenial main"
|
|
# yamllint enable rule:line-length
|
|
- sudo apt-get -qq update
|
|
# only the arm64 fallback repo is unsigned and needs --allow-unauthenticated
|
|
- sudo apt-get -y --allow-unauthenticated install librados-dev librbd-dev
|
|
|
|
# Two stages for testing, each stage runs its jobs in parallel, but stages are
|
|
# run after each other, unless the last stage fails.
|
|
# Only run the deploy stage on push (not pull_request) events.
|
|
stages:
|
|
- build testing
|
|
- e2e testing
|
|
- name: deploy
|
|
if: type = push
|
|
|
|
jobs:
|
|
include:
|
|
- stage: build testing
|
|
name: static-check-make
|
|
install:
|
|
- gem install mdl
|
|
- pip install --user --upgrade pip
|
|
- pip install --user yamllint
|
|
# install golangci-lint
|
|
- curl -sf
|
|
"https://install.goreleaser.com/github.com/golangci/golangci-lint.sh"
|
|
| bash -s -- -b $GOPATH/bin "${GOLANGCI_VERSION}"
|
|
# install gosec
|
|
- curl -sfL
|
|
"https://raw.githubusercontent.com/securego/gosec/master/install.sh"
|
|
| sh -s -- -b $GOPATH/bin "${GOSEC_VERSION}"
|
|
# install helm for helm lint
|
|
- curl -L https://git.io/get_helm.sh
|
|
| bash -s -- -v "${HELM_VERSION}"
|
|
script:
|
|
- make go-lint
|
|
- make lint-extras
|
|
- make gosec
|
|
- make go-test
|
|
- make mod-check
|
|
|
|
- stage: build testing
|
|
name: Build multi-architecture image for amd64 and arm64
|
|
script:
|
|
- ./scripts/build-multi-arch-image.sh || travis_terminate 1;
|
|
|
|
- stage: build testing
|
|
name: containerized test (Fedora) and build (CentOS)
|
|
script:
|
|
- make containerized-test || travis_terminate 1;
|
|
- make containerized-build || travis_terminate 1;
|
|
|
|
- stage: build testing
|
|
name: cephcsi on Arm64
|
|
arch: arm64
|
|
script:
|
|
- scripts/skip-doc-change.sh || travis_terminate 0;
|
|
- make image-cephcsi || travis_terminate 1;
|
|
# No CI test job is availabe for Arm64 now due to below issues
|
|
# - k8s-csi sidecar images for Arm64 are not available
|
|
# - Travis Arm64 CI job runs inside unprivileged LXD which blocks
|
|
# launching minikube test environment
|
|
- travis_terminate 0 # deploy only on x86
|
|
|
|
- stage: e2e testing
|
|
name: cephcsi with kube 1.16.9
|
|
script:
|
|
- scripts/skip-doc-change.sh || travis_terminate 0;
|
|
- make image-cephcsi || travis_terminate 1;
|
|
- scripts/travis-functest.sh v1.16.9 || travis_terminate 1;
|
|
|
|
- stage: e2e testing
|
|
name: cephcsi with kube 1.17.5
|
|
script:
|
|
- scripts/skip-doc-change.sh || travis_terminate 0;
|
|
- make image-cephcsi || travis_terminate 1;
|
|
- scripts/travis-functest.sh v1.17.5 || travis_terminate 1;
|
|
|
|
- stage: e2e testing
|
|
name: cephcsi helm charts with kube 1.17.5
|
|
script:
|
|
- scripts/skip-doc-change.sh || travis_terminate 0;
|
|
- make image-cephcsi || travis_terminate 1;
|
|
- scripts/travis-helmtest.sh v1.17.5 || travis_terminate 1;
|
|
|
|
- stage: deploy
|
|
name: push artifacts to repositories
|
|
script: ./deploy.sh
|