Update zuul gates to use docker-image
* use the docker image to lint and test * install docker on image instead of checking for go, the docker image itself is created from a golang base image Change-Id: I4b1342862973031734a1f1af887fd85ceae325da
This commit is contained in:
parent
fc38c593f2
commit
9ddfd8f69a
@ -32,12 +32,12 @@
|
|||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: airshipui-test
|
name: airshipui-test
|
||||||
pre-run: playbooks/install-go.yaml
|
pre-run: playbooks/install-docker.yaml
|
||||||
run: playbooks/airshipui-test/run.yaml
|
run: playbooks/airshipui-test/run.yaml
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: airshipui-lint
|
name: airshipui-lint
|
||||||
pre-run: playbooks/install-go.yaml
|
pre-run: playbooks/install-docker.yaml
|
||||||
run: playbooks/airshipui-lint/run.yaml
|
run: playbooks/airshipui-lint/run.yaml
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
name: Run linter
|
name: Run linter
|
||||||
tasks:
|
tasks:
|
||||||
- name: make lint
|
- name: make docker-image-lint
|
||||||
make:
|
make:
|
||||||
target: lint
|
target: docker-image-lint
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
environment:
|
environment:
|
||||||
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
|
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
name: Run tests
|
name: Run tests
|
||||||
tasks:
|
tasks:
|
||||||
- name: make test
|
- name: make docker-image-unit-tests
|
||||||
make:
|
make:
|
||||||
target: test
|
target: docker-image-unit-tests
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
environment:
|
environment:
|
||||||
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
|
PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin"
|
||||||
|
@ -12,6 +12,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
- hosts: all
|
- hosts: all
|
||||||
name: Install Go
|
name: Install Docker
|
||||||
roles:
|
roles:
|
||||||
- ensure-go
|
- docker-install
|
28
roles/docker-install/defaults/main.yaml
Normal file
28
roles/docker-install/defaults/main.yaml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
docker_config_path: "/etc/docker"
|
||||||
|
|
||||||
|
docker_config_log_driver: "journald"
|
||||||
|
docker_config_log_opts: {}
|
||||||
|
|
||||||
|
docker_config: |
|
||||||
|
{
|
||||||
|
"log-driver": "{{ docker_config_log_driver }}",
|
||||||
|
"log-opts": {{ docker_config_log_opts | to_json }}
|
||||||
|
}
|
||||||
|
|
||||||
|
proxy:
|
||||||
|
enabled: false
|
||||||
|
http:
|
||||||
|
https:
|
||||||
|
noproxy:
|
91
roles/docker-install/tasks/main.yaml
Normal file
91
roles/docker-install/tasks/main.yaml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
---
|
||||||
|
- name: Ensuring docker and support packages are present
|
||||||
|
become: yes
|
||||||
|
when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
|
||||||
|
yum:
|
||||||
|
name:
|
||||||
|
- docker.io
|
||||||
|
- runc
|
||||||
|
update_cache: yes
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Ensuring docker and support packages are present
|
||||||
|
become: yes
|
||||||
|
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- docker.io
|
||||||
|
- runc
|
||||||
|
update_cache: yes
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Ensure docker group exists
|
||||||
|
group:
|
||||||
|
name: docker
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add user "{{ ansible_user }}" to docker group
|
||||||
|
become: yes
|
||||||
|
user:
|
||||||
|
name: "{{ ansible_user }}"
|
||||||
|
groups:
|
||||||
|
- docker
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: Reset ssh connection to add docker group to user
|
||||||
|
meta: reset_connection
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Create docker directory
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/docker.service.d/
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Configure proxy for docker if enabled
|
||||||
|
template:
|
||||||
|
src: http-proxy-conf.j2
|
||||||
|
dest: /etc/systemd/system/docker.service.d/http-proxy.conf
|
||||||
|
when: proxy.enabled|bool == true
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Create docker directory
|
||||||
|
file:
|
||||||
|
path: "{{ docker_config_path }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Save docker daemon configuration
|
||||||
|
copy:
|
||||||
|
content: "{{ docker_config | to_nice_json }}"
|
||||||
|
dest: "{{ docker_config_path }}/daemon.json"
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Start docker
|
||||||
|
become: yes
|
||||||
|
systemd:
|
||||||
|
name: docker
|
||||||
|
state: restarted
|
||||||
|
daemon_reload: yes
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Change group ownership on docker sock
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
group: docker
|
||||||
|
|
4
roles/docker-install/templates/http-proxy-conf.j2
Normal file
4
roles/docker-install/templates/http-proxy-conf.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[Service]
|
||||||
|
Environment="HTTP_PROXY={{ proxy.http }}"
|
||||||
|
Environment="HTTPS_PROXY={{ proxy.https }}"
|
||||||
|
Environment="NO_PROXY={{ proxy.noproxy }}"
|
25
roles/docker-install/tests/main.yml
Normal file
25
roles/docker-install/tests/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- name: install docker
|
||||||
|
include_role:
|
||||||
|
name: docker-install
|
||||||
|
|
||||||
|
- name: check if docker is installed
|
||||||
|
shell: "docker version"
|
||||||
|
register: docker_version
|
||||||
|
|
||||||
|
- name: verify docker is installed
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- docker_version.rc == 0
|
||||||
|
|
@ -3,6 +3,7 @@ set -x
|
|||||||
|
|
||||||
tools_bin_dir="${BASH_SOURCE%/*}"
|
tools_bin_dir="${BASH_SOURCE%/*}"
|
||||||
node_version=v12.16.3
|
node_version=v12.16.3
|
||||||
|
npm_user=${USER:-root}
|
||||||
|
|
||||||
if [[ ! -d $tools_bin_dir/node-$node_version ]]; then
|
if [[ ! -d $tools_bin_dir/node-$node_version ]]; then
|
||||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||||
@ -40,6 +41,7 @@ if [[ ! -d $tools_bin_dir/node-$node_version ]]; then
|
|||||||
|
|
||||||
# npm will write to a node_modules even with the --directory flag it's better to be in the root of where you want this to live
|
# npm will write to a node_modules even with the --directory flag it's better to be in the root of where you want this to live
|
||||||
cd web
|
cd web
|
||||||
|
npm config set user ${npm_user}
|
||||||
if ! npm install eslint-plugin-html@latest --save-dev; then
|
if ! npm install eslint-plugin-html@latest --save-dev; then
|
||||||
printf "Something went wrong while installing eslint-plugin-html\n" 1>&2
|
printf "Something went wrong while installing eslint-plugin-html\n" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
|
Loading…
Reference in New Issue
Block a user