Skip to content

Instantly share code, notes, and snippets.

@repercussive
Created July 8, 2022 12:26
Show Gist options
  • Save repercussive/2b1164f7b422a5bad0046d099937ee16 to your computer and use it in GitHub Desktop.
Save repercussive/2b1164f7b422a5bad0046d099937ee16 to your computer and use it in GitHub Desktop.
Jenkins build 1
Started by user Liam Robertson
Obtained Jenkinsfile from git https://github.com/repercussive/colour-palette-generator.git
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /home/jenkins/.jenkins/workspace/palette-pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
> git rev-parse --resolve-git-dir /home/jenkins/.jenkins/workspace/palette-pipeline/.git # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/repercussive/colour-palette-generator.git # timeout=10
Fetching upstream changes from https://github.com/repercussive/colour-palette-generator.git
> git --version # timeout=10
> git --version # 'git version 2.17.1'
> git fetch --tags --progress -- https://github.com/repercussive/colour-palette-generator.git +refs/heads/*:refs/remotes/origin/* # timeout=10
> git rev-parse refs/remotes/origin/feature/set-up-automation^{commit} # timeout=10
Checking out Revision e9748344a43e7b9770d1d1acd6440e0b682e681f (refs/remotes/origin/feature/set-up-automation)
> git config core.sparsecheckout # timeout=10
> git checkout -f e9748344a43e7b9770d1d1acd6440e0b682e681f # timeout=10
Commit message: "access vms by hostname instead of ip"
> git rev-list --no-walk 5367e28a1f87533e2ac756dbbab55dea8a4adfcb # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Run unit tests)
[Pipeline] sh
+ bash scripts/run-unit-tests.sh
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Hit:2 http://ppa.launchpad.net/ansible/ansible/ubuntu bionic InRelease
Hit:3 http://europe-west2.gce.archive.ubuntu.com/ubuntu bionic InRelease
Get:4 http://europe-west2.gce.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Hit:5 https://download.docker.com/linux/ubuntu bionic InRelease
Get:6 http://europe-west2.gce.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:7 http://europe-west2.gce.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1827 kB]
Fetched 2079 kB in 1s (1886 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
python3 is already the newest version (3.6.7-1~18.04).
python3-pip is already the newest version (9.0.1-2.3~ubuntu1.18.04.5).
python3-venv is already the newest version (3.6.7-1~18.04).
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
Requirement already satisfied: flask in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 1))
Requirement already satisfied: flask_testing in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 2))
Requirement already satisfied: pytest in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 3))
Requirement already satisfied: pytest-cov in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 4))
Requirement already satisfied: requests in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 5))
Requirement already satisfied: requests_mock in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 6))
Requirement already satisfied: colour in ./venv/lib/python3.6/site-packages (from -r test_requirements.txt (line 7))
Requirement already satisfied: Jinja2>=3.0 in ./venv/lib/python3.6/site-packages (from flask->-r test_requirements.txt (line 1))
Requirement already satisfied: itsdangerous>=2.0 in ./venv/lib/python3.6/site-packages (from flask->-r test_requirements.txt (line 1))
Requirement already satisfied: Werkzeug>=2.0 in ./venv/lib/python3.6/site-packages (from flask->-r test_requirements.txt (line 1))
Requirement already satisfied: click>=7.1.2 in ./venv/lib/python3.6/site-packages (from flask->-r test_requirements.txt (line 1))
Requirement already satisfied: tomli>=1.0.0 in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: attrs>=19.2.0 in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: pluggy<2.0,>=0.12 in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: py>=1.8.2 in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: packaging in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: iniconfig in ./venv/lib/python3.6/site-packages (from pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: coverage[toml]>=5.2.1 in ./venv/lib/python3.6/site-packages (from pytest-cov->-r test_requirements.txt (line 4))
Requirement already satisfied: idna<4,>=2.5; python_version >= "3" in ./venv/lib/python3.6/site-packages (from requests->-r test_requirements.txt (line 5))
Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.6/site-packages (from requests->-r test_requirements.txt (line 5))
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./venv/lib/python3.6/site-packages (from requests->-r test_requirements.txt (line 5))
Requirement already satisfied: charset-normalizer~=2.0.0; python_version >= "3" in ./venv/lib/python3.6/site-packages (from requests->-r test_requirements.txt (line 5))
Requirement already satisfied: six in ./venv/lib/python3.6/site-packages (from requests_mock->-r test_requirements.txt (line 6))
Requirement already satisfied: MarkupSafe>=2.0 in ./venv/lib/python3.6/site-packages (from Jinja2>=3.0->flask->-r test_requirements.txt (line 1))
Requirement already satisfied: dataclasses; python_version < "3.7" in ./venv/lib/python3.6/site-packages (from Werkzeug>=2.0->flask->-r test_requirements.txt (line 1))
Requirement already satisfied: zipp>=0.5 in ./venv/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in ./venv/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->pytest->-r test_requirements.txt (line 3))
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in ./venv/lib/python3.6/site-packages (from packaging->pytest->-r test_requirements.txt (line 3))
============================= test session starts ==============================
platform linux -- Python 3.6.9, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/jenkins/.jenkins/workspace/palette-pipeline
plugins: cov-3.0.0, requests-mock-1.9.3
collected 4 items
service-1-front-end/tests_1/test_front.py . [ 25%]
service-2-base-color-api/tests_2/test_base_color_api.py . [ 50%]
service-3-palette-type-api/tests_3/test_palette_type_api.py . [ 75%]
service-4-create-palette-api/tests_4/test_create_palette_api.py . [100%]
----------- coverage: platform linux, python 3.6.9-final-0 -----------
Name Stmts Miss Cover
-------------------------------------------------------------------------------------
service-1-front-end/application_1/__init__.py 3 0 100%
service-1-front-end/application_1/routes.py 9 0 100%
service-1-front-end/tests_1/__init__.py 0 0 100%
service-1-front-end/tests_1/test_front.py 18 0 100%
service-2-base-color-api/application_2/__init__.py 3 0 100%
service-2-base-color-api/application_2/routes.py 6 0 100%
service-2-base-color-api/tests_2/__init__.py 0 0 100%
service-2-base-color-api/tests_2/test_base_color_api.py 14 0 100%
service-3-palette-type-api/application_3/__init__.py 3 0 100%
service-3-palette-type-api/application_3/routes.py 5 0 100%
service-3-palette-type-api/tests_3/__init__.py 0 0 100%
service-3-palette-type-api/tests_3/test_palette_type_api.py 11 0 100%
service-4-create-palette-api/application_4/__init__.py 3 0 100%
service-4-create-palette-api/application_4/routes.py 18 0 100%
service-4-create-palette-api/tests_4/__init__.py 0 0 100%
service-4-create-palette-api/tests_4/test_create_palette_api.py 12 0 100%
-------------------------------------------------------------------------------------
TOTAL 105 0 100%
============================== 4 passed in 0.58s ===============================
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Build and push Docker images)
[Pipeline] withCredentials
Masking supported pattern matches of $DH_PASSWORD
[Pipeline] {
[Pipeline] sh
+ bash scripts/build-docker-images.sh
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/jenkins/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Some services (service-1, service-2, service-3, service-4) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
nginx uses an image, skipping
Building service-1 ...
Building service-2 ...
Building service-3 ...
Building service-4 ...
Building service-4
Building service-2
Building service-3
Building service-1
Step 1/6 : FROM python:3.8
---> a603f4f4683f
Step 2/6 : WORKDIR /app
---> Using cache
---> 601350b0f1e3
Step 3/6 : COPY . .
---> Using cache
---> 5fa5d37b2e06
Step 4/6 : RUN pip3 install -r requirements.txt
---> Using cache
---> 6fc0473d04fb
Step 5/6 : EXPOSE 5000
---> Using cache
---> f084a1c4e487
Step 6/6 : ENTRYPOINT ["python3", "app.py"]
---> Using cache
---> 25f29d0312b9
Successfully built 25f29d0312b9
Successfully tagged repercussive/palette-generator-create-palette-api:latest

Building service-4 ... done
Step 1/6 : FROM python:3.8
---> a603f4f4683f
Step 2/6 : WORKDIR /app
---> Using cache
---> 601350b0f1e3
Step 3/6 : COPY . .
---> Using cache
---> c4dcd6b7847c
Step 4/6 : RUN pip3 install -r requirements.txt
---> Using cache
---> b7d6925d9686
Step 5/6 : EXPOSE 5000
---> Using cache
---> aa46e8311793
Step 6/6 : ENTRYPOINT ["python3", "app.py"]
---> Using cache
---> 599e76daa848
Successfully built 599e76daa848
Successfully tagged repercussive/palette-generator-base-color-api:latest

Building service-2 ... done
Step 1/6 : FROM python:3.8
---> a603f4f4683f
Step 2/6 : WORKDIR /app
---> Using cache
---> 601350b0f1e3
Step 3/6 : COPY . .
---> Using cache
---> 1d2a4cf5d529
Step 4/6 : RUN pip3 install -r requirements.txt
---> Using cache
---> df44c84a2c26
Step 5/6 : EXPOSE 5000
---> Using cache
---> 106512316c72
Step 6/6 : ENTRYPOINT ["python3", "app.py"]
---> Using cache
---> 88a981379005
Successfully built 88a981379005
Step 1/6 : FROM python:3.8
Successfully tagged repercussive/palette-generator-front:latest
---> a603f4f4683f
Step 2/6 : WORKDIR /app

Building service-1 ... done
 ---> Using cache
---> 601350b0f1e3
Step 3/6 : COPY . .
---> Using cache
---> eb670461c0e6
Step 4/6 : RUN pip3 install -r requirements.txt
---> Using cache
---> 30f794676622
Step 5/6 : EXPOSE 5000
---> Using cache
---> 23ad13d7676a
Step 6/6 : ENTRYPOINT ["python3", "app.py"]
---> Using cache
---> 5421c474f7ef
Successfully built 5421c474f7ef
Successfully tagged repercussive/palette-generator-palette-type-api:latest

Building service-3 ... done
Some services (service-1, service-2, service-3, service-4) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
Pushing service-1 (repercussive/palette-generator-front:latest)...
The push refers to repository [docker.io/repercussive/palette-generator-front]
latest: digest: sha256:d47bc22f6b1b3597828ba31ffb1b23ad33532c9914f944412b215b3e18435a3a size: 2844
Pushing service-2 (repercussive/palette-generator-base-color-api:latest)...
The push refers to repository [docker.io/repercussive/palette-generator-base-color-api]
latest: digest: sha256:b2037ce35b9fa895c07dff45c7a4d12b459e0d371cff6d740b9d01cff3011cd7 size: 2844
Pushing service-3 (repercussive/palette-generator-palette-type-api:latest)...
The push refers to repository [docker.io/repercussive/palette-generator-palette-type-api]
latest: digest: sha256:2c672d33bc462736c9c293e90ecc5fd22b328a41ab927b799f0190788026b29f size: 2844
Pushing service-4 (repercussive/palette-generator-create-palette-api:latest)...
The push refers to repository [docker.io/repercussive/palette-generator-create-palette-api]
latest: digest: sha256:1af2311f775d4a73e8aa1f36ab30faec7efcdf06aa5d88d0812b55dcc0fee107 size: 2844
Removing login credentials for https://index.docker.io/v1/
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy app)
[Pipeline] sh
+ bash scripts/deploy.sh
PLAY [all] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [swarm-worker]
ok: [swarm-manager]
TASK [install-docker : Install required system packages] ***********************
changed: [swarm-worker]
changed: [swarm-manager]
TASK [install-docker : Add Docker GPG key] *************************************
changed: [swarm-worker]
changed: [swarm-manager]
TASK [install-docker : Add Docker repository] **********************************
changed: [swarm-worker]
changed: [swarm-manager]
TASK [install-docker : Install Docker engine] **********************************
changed: [swarm-worker]
changed: [swarm-manager]
TASK [install-docker : Install Docker module for Python] ***********************
changed: [swarm-worker]
changed: [swarm-manager]
PLAY [swarm_manager] ***********************************************************
TASK [Gathering Facts] *********************************************************
ok: [swarm-manager]
TASK [Initialise swarm] ********************************************************
changed: [swarm-manager]
TASK [Deploy stack] ************************************************************
changed: [swarm-manager]
PLAY [swarm_workers] ***********************************************************
TASK [Gathering Facts] *********************************************************
ok: [swarm-worker]
TASK [Join swarm] **************************************************************
changed: [swarm-worker]
PLAY RECAP *********************************************************************
swarm-manager : ok=9 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
swarm-worker : ok=8 changed=6 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment