|
1 | 1 | --- |
2 | 2 |
|
| 3 | +.script-git-submodule: &script-git-submodule |
| 4 | + - | |
| 5 | + git submodule sync --recursive |
| 6 | + git submodule update --init --recursive |
| 7 | +
|
3 | 8 | .script-bootstrap-packer: &script-bootstrap-packer |
4 | 9 | - | |
5 | 10 | curl -skL -O https://github.com/hashicorp/packer/releases/download/nightly/packer_linux_amd64.zip |
6 | 11 | sudo unzip -qq -o -d /usr/local/bin packer_linux_amd64.zip |
7 | 12 | rm -rf packer_linux_amd64.zip |
8 | 13 |
|
9 | | -
|
10 | 14 | .script-bootstrap-docker: &script-bootstrap-docker |
11 | 15 | - | |
12 | 16 | curl -skL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - |
|
22 | 26 | curl -skL https://bootstrap.pypa.io/get-pip.py | sudo -H python3 - --prefix=/usr/local |
23 | 27 | sudo -H pip3 install --prefix=/usr/local --upgrade --ignore-installed --requirement requirements.txt |
24 | 28 |
|
| 29 | +.script-linters: &script-linters |
| 30 | + - | |
| 31 | + yamllint . |
| 32 | + ansible-lint |
| 33 | + flake8 |
| 34 | +
|
25 | 35 | .script-packer-build: &script-packer-build |
26 | 36 | - | |
27 | 37 | cd packer/$_PACKER_BUILDER_PROVIDER-$_PACKER_BUILDER_VERSION |
28 | 38 | sudo packer build packer.json |
29 | 39 |
|
| 40 | +.script-docker-push: &script-docker-push |
| 41 | + - | |
| 42 | + echo $DOCKER_TOKEN | sudo docker login --username=$DOCKER_USERNAME --password-stdin |
| 43 | + export _DOCKER_IMAGE=$(sudo docker images | awk '{print $3}' | awk 'NR==2') |
| 44 | + export _DOCKER_REPO=$CI_PROJECT_NAMESPACE/$(echo $CI_PROJECT_NAME | sed 's/^docker-//g') |
| 45 | + if [[ -n "$CI_COMMIT_TAG" ]] && [[ "$CI_COMMIT_TAG" =~ ^$PACKER_BUILDER_VERSION ]]; then |
| 46 | + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$CI_COMMIT_TAG |
| 47 | + sudo docker push $_DOCKER_REPO:$CI_COMMIT_TAG |
| 48 | + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:latest |
| 49 | + sudo docker push $_DOCKER_REPO:latest |
| 50 | + elif [[ -n "$CI_COMMIT_BRANCH" ]] && [[ "$CI_COMMIT_BRANCH" =~ master ]]; then |
| 51 | + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$_PACKER_BUILDER_VERSION |
| 52 | + sudo docker push $_DOCKER_REPO:$_PACKER_BUILDER_VERSION |
| 53 | + fi |
| 54 | +
|
30 | 55 | .job-packer: &job-packer |
31 | 56 | script: |
32 | 57 | - *script-bootstrap-packer |
33 | 58 | - *script-bootstrap-docker |
34 | 59 | - *script-bootstrap-ansible |
| 60 | + - *script-linters |
35 | 61 | - *script-packer-build |
| 62 | + - *script-docker-push |
36 | 63 |
|
37 | 64 | default: |
38 | 65 | before_script: |
39 | | - - | |
40 | | - git submodule sync --recursive |
41 | | - git submodule update --init --recursive |
42 | | -
|
43 | | - - | |
44 | | - yamllint . |
45 | | - ansible-lint |
46 | | - flake8 |
47 | | -
|
48 | | - after_script: |
49 | | - - | |
50 | | - echo $DOCKER_TOKEN | sudo docker login --username=$DOCKER_USERNAME --password-stdin |
51 | | - export _DOCKER_IMAGE=$(sudo docker images | awk '{print $3}' | awk 'NR==2') |
52 | | - export _DOCKER_REPO=$CI_PROJECT_NAMESPACE/$(echo $CI_PROJECT_NAME | sed 's/^docker-//g') |
53 | | - if [[ -n "$CI_COMMIT_TAG" ]] && [[ "$CI_COMMIT_TAG" =~ ^$PACKER_BUILDER_VERSION ]]; then |
54 | | - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$CI_COMMIT_TAG |
55 | | - sudo docker push $_DOCKER_REPO:$CI_COMMIT_TAG |
56 | | - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:latest |
57 | | - sudo docker push $_DOCKER_REPO:latest |
58 | | - elif [[ -n "$CI_COMMIT_BRANCH" ]] && [[ "$CI_COMMIT_BRANCH" =~ master ]]; then |
59 | | - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$_PACKER_BUILDER_VERSION |
60 | | - sudo docker push $_DOCKER_REPO:$_PACKER_BUILDER_VERSION |
61 | | - fi |
| 66 | + - *script-git-submodule |
62 | 67 |
|
63 | 68 | docker-7.1: |
64 | 69 | <<: *job-packer |
|
0 commit comments