forked from ceph/ceph-csi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
142 lines (126 loc) · 4.4 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
---
# 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 go-lint-text
- 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.14.10
script:
- scripts/skip-doc-change.sh || travis_terminate 0;
- make image-cephcsi || travis_terminate 1;
- scripts/travis-functest.sh v1.14.10 || travis_terminate 1;
- stage: e2e testing
name: cephcsi with kube 1.15.6
script:
- scripts/skip-doc-change.sh || travis_terminate 0;
- make image-cephcsi || travis_terminate 1;
- scripts/travis-functest.sh v1.15.6 || travis_terminate 1;
- stage: e2e testing
name: cephcsi with kube 1.17.0
script:
- scripts/skip-doc-change.sh || travis_terminate 0;
- make image-cephcsi || travis_terminate 1;
- scripts/travis-functest.sh v1.17.0 || travis_terminate 1;
- stage: e2e testing
name: cephcsi helm charts with kube 1.17.0
script:
- scripts/skip-doc-change.sh || travis_terminate 0;
- make image-cephcsi || travis_terminate 1;
- scripts/travis-helmtest.sh v1.17.0 || travis_terminate 1;
- stage: deploy
name: push artifacts to repositories
script: ./deploy.sh