-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.old.travis.yml
140 lines (116 loc) · 4.31 KB
/
.old.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
dist: xenial
sudo: required
language: bash
services:
- docker
addons:
apt:
packages:
- docker-ce
# Don't build release tags. This avoids publish conflicts because the version commit exists both on master and the release tag.
# See https://github.com/travis-ci/travis-ci/issues/1532
branches:
# except:
# - /^[0-9]/
# safelist
only:
- master
- develop
- release
- /^((rc|v|version|release|tag)(-)?)?([0-9\.]+)((-)?(patch|beta|alpha))?$/
#jdk:
# - 8
# - 9
env:
matrix:
- VERSION=8.10 VARIANT=jdk
# - VERSION=9.10 VARIANT=jdk
# before install any component
before_install:
# Parameters used during release
- git config user.name "$GH_USER"
- git config user.email "$GH_USER_EMAIL"
# setup https authentication credentials, used by ./mvnw release:prepare
- git config credential.helper "store --file=.git/credentials"
- echo "https://$GH_TOKEN:@github.com" > .git/credentials
#Install docker library official image testing ...
- git clone https://github.com/docker-library/official-images.git ~/official-images
# Update all git submodule (No need this manual submodule update ...)
##- git submodule init && git submodule update --init --recursive --remote --merge
before_script:
- env | sort
- cd "dockerfiles/$VERSION"
- BASE=${ACCOUNT_ID:-djanta}
- PROJECT=nuxeo-sdk
- IMAGE_BASE="${BASE}/${PROJECT}"
- IMAGE_TAG="${IMAGE_BASE}:$VERSION"
- IMAGE_BRANCH="${IMAGE_TAG}-${TRAVIS_BRANCH}"
- IMAGE_SNAPSHOT="${IMAGE_TAG}-snapshot"
- GITHUB_IMAGE_TAG="${PROJECT}:${VERSION}"
- GITHUB_IMAGE_BRANCH="${GITHUB_IMAGE_TAG}-${TRAVIS_BRANCH}"
- GITHUB_REGISTRY=docker.pkg.github.com/$TRAVIS_REPO_SLUG
- GITHUB_IMAGE_SNAPSHOT="${GITHUB_IMAGE_TAG}-snapshot"
# Login into official docker registry ...
- echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USER" --password-stdin
# Login into github docker registry ...
- echo "$GH_TOKEN" | docker login docker.pkg.github.com --username "$GH_USER" --password-stdin
# Year based version format. CREDIT: https://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/
- R_VERSION=$(date -u +'%y.%m')
script:
- travis_wait 30 travis_retry docker --debug build -t $IMAGE_TAG --file $TRAVIS_BUILD_DIR/dockerfiles/$VERSION/Dockerfile .
# Testing the current given built image
- travis_wait 30 travis_retry ~/official-images/test/run.sh "$IMAGE_TAG"
after_script:
- docker images
stages:
- name: develop
if: (branch = develop AND type != pull_request) AND commit_message !~ /^(prepare release ([0-9\.]+))$/
- name: snapshot
if: branch = master AND type != pull_request AND commit_message !~ /^(prepare release ([0-9\.]+))$/
- name: rehydrate
if: $TRAVIS_EVENT_TYPE = cron #branch = master AND type != pull_request AND commit_message !~ /^(prepare release ([0-9\.]+))$/
- name: release
## Validator: https://regex101.com/
if: tag =~ /^((rc|v|version|release|tag)(-)?)?([0-9\.]+)((-)?(patch|beta|alpha))?$/
jobs:
include:
- stage: develop
name: "Build and Unit Testing the develop & PR branch"
install: true
before_deploy:
- docker tag "$IMAGE_TAG" "$IMAGE_BRANCH"
- docker tag "$IMAGE_TAG" $GITHUB_REGISTRY/$GITHUB_IMAGE_BRANCH
# deploy:
# provider: script
# script: docker push "$IMAGE_BRANCH" && docker push ${GITHUB_REGISTRY}/$GITHUB_IMAGE_BRANCH
# on:
# branch: develop
- stage: snapshot
name: "Deploy Snapshot to Maven repo"
install: true
before_deploy:
- docker tag "$IMAGE_TAG" "$IMAGE_SNAPSHOT"
- docker tag "$IMAGE_TAG" $GITHUB_REGISTRY/$GITHUB_IMAGE_SNAPSHOT
deploy:
provider: script
script: docker push "$IMAGE_SNAPSHOT" && docker push ${GITHUB_REGISTRY}/$GITHUB_IMAGE_SNAPSHOT
on:
branch: master
- stage: release
name: "Release, Tag & push the released version"
install: true
before_deploy:
- docker tag "$IMAGE_TAG" "$IMAGE_TAG"
- docker tag "$IMAGE_TAG" $GITHUB_REGISTRY/$IMAGE_TAG
deploy:
provider: script
script: docker push "$IMAGE_TAG" && docker push ${GITHUB_REGISTRY}/$IMAGE_TAG
# on:
# branch: release
notifications:
email:
recipients:
- "$GH_USER_EMAIL"
on_success: change # default: change
on_failure: always # default: always
# vim:set et ts=2 sw=2: