forked from application-stacks/runtime-component-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
103 lines (98 loc) · 3.41 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
dist: focal
language: go
go:
- 1.16.x
go_import_path: github.com/application-stacks/runtime-component-operator
services:
- docker
before_install:
- sudo apt-get update
stages:
- name: unit-test
# Builds are split into 'e2e-test' and 'build' to allow e2e tests to run first. If e2e fails, don't bother
# building and pushing the images for the other architectures.
- name: minikube-e2e-test
if: (branch = main OR tag =~ ^v) AND fork = false AND type != pull_request AND type != cron
- name: e2e-test
if: (branch = main OR tag =~ ^v) AND fork = false AND type != cron
- name: build
if: (branch = main OR tag =~ ^v) AND fork = false AND type != pull_request AND type != cron
- name: build-manifest
if: (branch = main OR tag =~ ^v) AND fork = false AND type != pull_request AND type != cron
# Releases are rebuilt weekly via a Travis cron job
- name: rebuild-e2e-test
if: branch = main AND fork = false AND type = cron
- name: rebuild-releases
if: branch = main AND fork = false AND type = cron
- name: rebuild-bundles
if: branch = main AND fork = false AND type = cron
jobs:
include:
- name: Unit testing
stage: unit-test
script: make unit-test
- name: Build image on amd64 and test
stage: e2e-test
os: linux
arch: amd64
script: travis_wait 45 make setup test-e2e || travis_terminate 1
- name: Build image on ppc64le
stage: build
os: linux
arch: ppc64le
script: make build-releases
- name: Build image on s390x
stage: build
os: linux
arch: s390x
script: make build-releases
- name: Build image and bundle on amd64
stage: build
os: linux
arch: amd64
before_install:
- sudo apt-get install -qq -y software-properties-common uidmap
- make install-podman
- make install-opm
script: make build-releases && make build-manifest && make bundle-releases
## in case there were concurrency issues with building manifest lists
## in previous steps, create FAT manifests one last time
- name: Verify manifest lists
stage: build-manifest
script: make build-manifest
#- name: Minikube test on amd64
# stage: minikube-e2e-test
# os: linux
# arch: amd64
# script: travis_wait 45 make setup minikube-test-e2e || travis_terminate 1
# Build all non-ignored releases
- name: Build image on amd64 and test
stage: rebuild-e2e-test
os: linux
arch: amd64
script: travis_wait 45 make setup test-e2e RELEASE_TARGET="releases" || travis_terminate 1
- name: Build releases on ppc64le
stage: rebuild-releases
os: linux
arch: ppc64le
script: make build-releases RELEASE_TARGET="releases"
- name: Build releases on s390x
stage: rebuild-releases
os: linux
arch: s390x
script: make build-releases RELEASE_TARGET="releases"
- name: Build releases on amd64
stage: rebuild-releases
os: linux
arch: amd64
script: make build-releases RELEASE_TARGET="releases"
# Bundle all non-ignored releases
- name: Bundle releases
stage: rebuild-bundles
os: linux
arch: amd64
before_install:
- sudo apt-get install -qq -y software-properties-common uidmap
- make install-podman
- make install-opm
script: make build-manifest RELEASE_TARGET="releases" && make bundle-releases RELEASE_TARGET="releases"