|
10 | 10 | #
|
11 | 11 | # DOCKER_USERNAME If PUBLISH_IMAGES is 'yes'
|
12 | 12 | # DOCKER_PASSWORD If PUBLISH_IMAGES is 'yes'
|
| 13 | +# |
| 14 | +# ----------------- |
| 15 | +# |
| 16 | +# NOTE: Pull requests from foreign repositories will not |
| 17 | +# result in encrupted variables being set. |
| 18 | +# So, regardless of the state of PUBLISH_IMAGES, |
| 19 | +# images will only be published if DOCKER_PASSWORD is defined. |
13 | 20 |
|
14 | 21 | os: linux
|
15 | 22 | services:
|
16 | 23 | - docker
|
17 | 24 |
|
18 | 25 | stages:
|
| 26 | +- name: test |
19 | 27 | - name: publish latest
|
20 | 28 | if: |
|
21 | 29 | branch = master \
|
22 |
| - AND env(PUBLISH_IMAGES) = yes |
23 |
| -- name: test latest |
24 |
| - if: | |
25 |
| - branch = master \ |
26 |
| - AND env(PUBLISH_IMAGES) = yes |
| 30 | + AND env(PUBLISH_IMAGES) = yes \ |
| 31 | + AND env(DOCKER_PASSWORD) IS present |
27 | 32 | - name: publish tag
|
28 | 33 | if: |
|
29 | 34 | tag IS present \
|
30 |
| - AND env(PUBLISH_IMAGES) = yes |
| 35 | + AND env(PUBLISH_IMAGES) = yes \ |
| 36 | + AND env(DOCKER_PASSWORD) IS present |
31 | 37 | - name: publish stable
|
32 | 38 | if: |
|
33 | 39 | tag IS present \
|
34 | 40 | AND tag =~ ^([0-9]+\.){1,2}[0-9]+$ \
|
35 |
| - AND env(PUBLISH_IMAGES) = yes |
36 |
| -
|
37 |
| -before_script: |
38 |
| -- docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" |
| 41 | + AND env(PUBLISH_IMAGES) = yes \ |
| 42 | + AND env(DOCKER_PASSWORD) IS present |
39 | 43 |
|
40 | 44 | jobs:
|
41 | 45 | include:
|
42 | 46 |
|
| 47 | + - stage: test |
| 48 | + name: Test Local Image |
| 49 | + script: |
| 50 | + - docker build -t informaticsmatters/rdkit_pipelines:latest -f Dockerfile-rdkit . |
| 51 | + - docker build -t squonk/rdkit-pipelines-sdposter:latest -f Dockerfile-sdposter . |
| 52 | + - git clone https://github.com/InformaticsMatters/pipelines-utils.git |
| 53 | + - cd pipelines-utils/src/groovy |
| 54 | + - groovy PipelineTester.groovy -indocker |
| 55 | + |
43 | 56 | # Publish-stage jobs...
|
44 |
| - # Every successful master build results in a latest image (above) |
| 57 | + # Every successful master build results in a latest image |
45 | 58 | # and every tag results in a tagged image in Docker Hub.
|
46 | 59 | # Tags that match a RegEx are considered 'official' tags
|
47 | 60 | # and also result in a 'stable' image tag.
|
48 | 61 |
|
49 | 62 | - stage: publish latest
|
50 |
| - name: Latest Image |
| 63 | + name: Publish Latest Image |
51 | 64 | script:
|
52 | 65 | # Build and push the pipelines-rdkit image and its sd-poster
|
53 | 66 | - docker build -t informaticsmatters/rdkit_pipelines:latest -f Dockerfile-rdkit .
|
54 |
| - - docker push informaticsmatters/rdkit_pipelines:latest |
55 | 67 | - docker build -t squonk/rdkit-pipelines-sdposter:latest -f Dockerfile-sdposter .
|
| 68 | + - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" |
| 69 | + - docker push informaticsmatters/rdkit_pipelines:latest |
56 | 70 | - docker push squonk/rdkit-pipelines-sdposter:latest
|
57 | 71 |
|
58 |
| - - stage: test latest |
59 |
| - name: Test Latest Image |
60 |
| - script: |
61 |
| - # Pull the latest pipelines-rdkit image |
62 |
| - # then clone the utils rep (containing the test engine) |
63 |
| - # and then run the tests |
64 |
| - - docker pull informaticsmatters/rdkit_pipelines:latest |
65 |
| - - git clone https://github.com/InformaticsMatters/pipelines-utils.git |
66 |
| - - cd pipelines-utils/src/groovy |
67 |
| - - groovy PipelineTester.groovy -indocker |
68 |
| - |
69 | 72 | - stage: publish tag
|
70 |
| - name: Tagged Image |
| 73 | + name: Publish Tagged Image |
71 | 74 | script:
|
72 | 75 | # Build and push the pipelines-rdkit image and its sd-poster
|
73 | 76 | - docker build -t informaticsmatters/rdkit_pipelines:${TRAVIS_TAG} -f Dockerfile-rdkit .
|
74 |
| - - docker push informaticsmatters/rdkit_pipelines:${TRAVIS_TAG} |
75 | 77 | - docker build -t squonk/rdkit-pipelines-sdposter:${TRAVIS_TAG} -f Dockerfile-sdposter .
|
| 78 | + - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" |
| 79 | + - docker push informaticsmatters/rdkit_pipelines:${TRAVIS_TAG} |
76 | 80 | - docker push squonk/rdkit-pipelines-sdposter:${TRAVIS_TAG}
|
77 | 81 |
|
78 | 82 | - stage: publish stable
|
79 |
| - name: Stable Image |
| 83 | + name: Publish Stable Image |
80 | 84 | script:
|
81 |
| - # Pull the corresponding pipelines-rdkit image tag and push it as 'stable' |
| 85 | + # Pull the corresponding pipelines-rdkit image tag |
| 86 | + # and push it again as 'stable' |
| 87 | + - docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" |
82 | 88 | - docker pull informaticsmatters/rdkit_pipelines:${TRAVIS_TAG}
|
83 |
| - - docker tag informaticsmatters/rdkit_pipelines:${TRAVIS_TAG} informaticsmatters/rdkit_pipelines:stable |
84 |
| - - docker push informaticsmatters/rdkit_pipelines:stable |
85 | 89 | - docker pull squonk/rdkit-pipelines-sdposter:${TRAVIS_TAG}
|
| 90 | + - docker tag informaticsmatters/rdkit_pipelines:${TRAVIS_TAG} informaticsmatters/rdkit_pipelines:stable |
86 | 91 | - docker tag squonk/rdkit-pipelines-sdposter:${TRAVIS_TAG} squonk/rdkit-pipelines-sdposter:stable
|
| 92 | + - docker push informaticsmatters/rdkit_pipelines:stable |
87 | 93 | - docker push squonk/rdkit-pipelines-sdposter:stable
|
0 commit comments