shake-build: add shake build system job
This change adds a new job to run the shake build system. Change-Id: Iffaf4e0675d91033b1b5d66c52d501f6bdc8acaf
This commit is contained in:
parent
3d64b59f00
commit
b8e57ffc60
@ -7,5 +7,6 @@ General Purpose Jobs
|
|||||||
.. zuul:autojob:: markdownlint
|
.. zuul:autojob:: markdownlint
|
||||||
.. zuul:autojob:: multinode
|
.. zuul:autojob:: multinode
|
||||||
.. zuul:autojob:: run-test-command
|
.. zuul:autojob:: run-test-command
|
||||||
|
.. zuul:autojob:: shake-build
|
||||||
.. zuul:autojob:: upload-git-mirror
|
.. zuul:autojob:: upload-git-mirror
|
||||||
.. zuul:autojob:: validate-zone-db
|
.. zuul:autojob:: validate-zone-db
|
||||||
|
@ -18,6 +18,7 @@ General Purpose Roles
|
|||||||
.. zuul:autorole:: ensure-dhall
|
.. zuul:autorole:: ensure-dhall
|
||||||
.. zuul:autorole:: ensure-dstat-graph
|
.. zuul:autorole:: ensure-dstat-graph
|
||||||
.. zuul:autorole:: ensure-markdownlint
|
.. zuul:autorole:: ensure-markdownlint
|
||||||
|
.. zuul:autorole:: ensure-shake
|
||||||
.. zuul:autorole:: fetch-markdownlint
|
.. zuul:autorole:: fetch-markdownlint
|
||||||
.. zuul:autorole:: git-prepare-nodecache
|
.. zuul:autorole:: git-prepare-nodecache
|
||||||
.. zuul:autorole:: log-inventory
|
.. zuul:autorole:: log-inventory
|
||||||
@ -38,6 +39,7 @@ General Purpose Roles
|
|||||||
.. zuul:autorole:: remove-zuul-sshkey
|
.. zuul:autorole:: remove-zuul-sshkey
|
||||||
.. zuul:autorole:: revoke-sudo
|
.. zuul:autorole:: revoke-sudo
|
||||||
.. zuul:autorole:: run-dstat
|
.. zuul:autorole:: run-dstat
|
||||||
|
.. zuul:autorole:: shake-build
|
||||||
.. zuul:autorole:: sign-artifacts
|
.. zuul:autorole:: sign-artifacts
|
||||||
.. zuul:autorole:: stage-output
|
.. zuul:autorole:: stage-output
|
||||||
.. zuul:autorole:: start-zuul-console
|
.. zuul:autorole:: start-zuul-console
|
||||||
|
3
playbooks/shake/pre.yaml
Normal file
3
playbooks/shake/pre.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- ensure-shake
|
3
playbooks/shake/run.yaml
Normal file
3
playbooks/shake/run.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- shake-build
|
3
roles/ensure-shake/README.rst
Normal file
3
roles/ensure-shake/README.rst
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Ensure shake is installed
|
||||||
|
|
||||||
|
Installs the shake tool using the distro package.
|
31
roles/ensure-shake/tasks/main.yaml
Normal file
31
roles/ensure-shake/tasks/main.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
- name: Make sure the role is run on supported distro
|
||||||
|
fail:
|
||||||
|
msg: |
|
||||||
|
This role supports Fedora only,
|
||||||
|
Add your distro package to: {{ opendev_url }}/roles/ensure-shake/vars/
|
||||||
|
when: "ansible_distribution != 'Fedora'"
|
||||||
|
vars:
|
||||||
|
opendev_url: https://opendev.org/zuul/zuul-jobs/src/branch/master/
|
||||||
|
|
||||||
|
- name: Check shake version
|
||||||
|
command: shake --version
|
||||||
|
failed_when: false
|
||||||
|
register: _shake_version
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Include OS-specific variables
|
||||||
|
include_vars: "{{ zj_distro_os }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: zj_distro_os
|
||||||
|
with_first_found:
|
||||||
|
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
|
||||||
|
- "{{ ansible_distribution }}.{{ ansible_architecture }}.yaml"
|
||||||
|
- "{{ ansible_distribution }}.yaml"
|
||||||
|
- "{{ ansible_os_family }}.yaml"
|
||||||
|
|
||||||
|
- name: Install shake
|
||||||
|
package:
|
||||||
|
name: "{{ shake_packages }}"
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
when: "_shake_version.rc != 0"
|
3
roles/ensure-shake/vars/RedHat.yaml
Normal file
3
roles/ensure-shake/vars/RedHat.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
shake_packages:
|
||||||
|
- shake
|
||||||
|
- ghc-shake-devel
|
13
roles/shake-build/README.rst
Normal file
13
roles/shake-build/README.rst
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Run the shake build system command.
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: shake_report_name
|
||||||
|
:default: shake.html
|
||||||
|
|
||||||
|
The name of the report.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: zuul_work_dir
|
||||||
|
:default: {{ zuul.project.src_dir }}
|
||||||
|
|
||||||
|
Directory to run the shake command in.
|
3
roles/shake-build/defaults/main.yaml
Normal file
3
roles/shake-build/defaults/main.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
shake_report_name: "shake.html"
|
||||||
|
|
||||||
|
zuul_work_dir: "{{ zuul.project.src_dir }}"
|
16
roles/shake-build/tasks/main.yaml
Normal file
16
roles/shake-build/tasks/main.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
- block:
|
||||||
|
- name: Run shake
|
||||||
|
command: "shake --report={{ report_location }}"
|
||||||
|
vars:
|
||||||
|
report_location: "{{ ansible_user_dir }}/zuul-output/logs/{{ shake_report_name }}"
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul_work_dir }}"
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: Return report to Zuul
|
||||||
|
zuul_return:
|
||||||
|
data:
|
||||||
|
zuul:
|
||||||
|
artifacts:
|
||||||
|
- name: "Shake report"
|
||||||
|
url: "{{ shake_report_name }}"
|
19
test-playbooks/shake/setup-project.yaml
Normal file
19
test-playbooks/shake/setup-project.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
- hosts: all
|
||||||
|
tasks:
|
||||||
|
- name: Setup shakefile
|
||||||
|
copy:
|
||||||
|
dest: "{{ zuul.project.src_dir }}/Shakefile.hs"
|
||||||
|
content: |
|
||||||
|
import Development.Shake
|
||||||
|
|
||||||
|
-- This Shakefile creates synthetic load using sha256sum on each .rst file
|
||||||
|
main :: IO ()
|
||||||
|
main = shakeArgs shakeOptions{shakeFiles="_build"} $ do
|
||||||
|
want [ "doc" ]
|
||||||
|
|
||||||
|
phony "doc" $ do
|
||||||
|
files <- getDirectoryFiles "" ["//*.rst"]
|
||||||
|
putNormal $ "Processing doc... with: " <> show files
|
||||||
|
need files
|
||||||
|
|
||||||
|
"//**.rst" %> \rst_file -> cmd_ "sha256sum " [rst_file]
|
@ -692,6 +692,22 @@
|
|||||||
- ^roles/upload-git-mirror/.*
|
- ^roles/upload-git-mirror/.*
|
||||||
- ^test-playbooks/upload-git-mirror.yaml
|
- ^test-playbooks/upload-git-mirror.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: zuul-jobs-test-shake-build
|
||||||
|
description: Test the shake build job and roles
|
||||||
|
parent: shake-build
|
||||||
|
files:
|
||||||
|
- playbooks/shake/.*
|
||||||
|
- roles/ensure-shake/.*
|
||||||
|
- roles/shake-build/.*
|
||||||
|
- test-playbooks/shake/.*
|
||||||
|
pre-run:
|
||||||
|
- test-playbooks/shake/setup-project.yaml
|
||||||
|
nodeset:
|
||||||
|
nodes:
|
||||||
|
- name: fedora-31
|
||||||
|
label: fedora-31
|
||||||
|
|
||||||
# -* AUTOGENERATED *-
|
# -* AUTOGENERATED *-
|
||||||
# The following project section is autogenerated by
|
# The following project section is autogenerated by
|
||||||
# tox -e update-test-platforms
|
# tox -e update-test-platforms
|
||||||
@ -746,6 +762,7 @@
|
|||||||
- zuul-jobs-test-generate-zuul-manifest
|
- zuul-jobs-test-generate-zuul-manifest
|
||||||
- zuul-jobs-test-upload-artifactory
|
- zuul-jobs-test-upload-artifactory
|
||||||
- zuul-jobs-test-upload-git-mirror
|
- zuul-jobs-test-upload-git-mirror
|
||||||
|
- zuul-jobs-test-shake-build
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- zuul-jobs-test-add-authorized-keys
|
- zuul-jobs-test-add-authorized-keys
|
||||||
@ -790,3 +807,4 @@
|
|||||||
- zuul-jobs-test-generate-zuul-manifest
|
- zuul-jobs-test-generate-zuul-manifest
|
||||||
- zuul-jobs-test-upload-artifactory
|
- zuul-jobs-test-upload-artifactory
|
||||||
- zuul-jobs-test-upload-git-mirror
|
- zuul-jobs-test-upload-git-mirror
|
||||||
|
- zuul-jobs-test-shake-build
|
||||||
|
@ -119,3 +119,12 @@
|
|||||||
|
|
||||||
pre-run: playbooks/dhall/prepare.yaml
|
pre-run: playbooks/dhall/prepare.yaml
|
||||||
run: playbooks/dhall/diff.yaml
|
run: playbooks/dhall/diff.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: shake-build
|
||||||
|
description: |
|
||||||
|
Run the shake build system command.
|
||||||
|
|
||||||
|
This job produces a shake.html report.
|
||||||
|
pre-run: playbooks/shake/pre.yaml
|
||||||
|
run: playbooks/shake/run.yaml
|
||||||
|
Loading…
Reference in New Issue
Block a user