mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-09 16:00:22 +00:00
2dc0bffc0a
as we are building the cephcsi inside a container for both amd64 and arm64 we dont need to have a separate E2E to test the build on arm64 machine. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
120 lines
3.5 KiB
YAML
120 lines
3.5 KiB
YAML
---
|
|
# need for docker build
|
|
sudo: true
|
|
dist: bionic
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- coreutils
|
|
- 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 $(lsb_release -sc) 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}"
|
|
# yamllint disable rule:line-length
|
|
- mkdir -p /opt/commitlint && pushd /opt/commitlint
|
|
&& npm init -y && npm install --save-dev @commitlint/travis-cli && popd
|
|
# yamllint enable rule:line-length
|
|
- export PATH=/opt/commitlint/node_modules/.bin:$PATH
|
|
script:
|
|
- commitlint-travis
|
|
- 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: 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
|