cabal-test: add build target job variable

This change adds support for custom target and removes the
configure step which is not necessary.
This change also uses the copr of cabal-install to get
a more up-to-date version.

Change-Id: I538e2b24abb66181d1ead2779bf6aa3440ee58ff
This commit is contained in:
Tristan Cacqueray 2020-05-07 23:56:02 +00:00
parent 64741aa73d
commit 7fdf0cc3ab
6 changed files with 37 additions and 17 deletions

View File

@ -2,6 +2,10 @@ Run the cabal test command.
**Role Variables** **Role Variables**
.. zuul:rolevar:: cabal_target
The cabal target(s) to test.
.. zuul:rolevar:: zuul_work_dir .. zuul:rolevar:: zuul_work_dir
:default: {{ zuul.project.src_dir }} :default: {{ zuul.project.src_dir }}

View File

@ -1 +1,7 @@
cabal_target: ""
zuul_work_dir: "{{ zuul.project.src_dir }}" zuul_work_dir: "{{ zuul.project.src_dir }}"
_cabal_install_args: "--only-dependencies {{ cabal_target }}"
_cabal_build_args: "--enable-tests {{ cabal_target }}"
_cabal_test_args: "{{ cabal_target }}"

View File

@ -1,19 +1,14 @@
- name: Run cabal install --only-dependencies - name: Run cabal install {{ _cabal_install_args }}
command: cabal install --only-dependencies command: "cabal install {{ _cabal_install_args }}"
args: args:
chdir: "{{ zuul_work_dir }}" chdir: "{{ zuul_work_dir }}"
- name: Run cabal configure --enable-test - name: Run cabal build {{ _cabal_build_args }}
command: cabal configure --enable-test command: "cabal build {{ _cabal_build_args }}"
args: args:
chdir: "{{ zuul_work_dir }}" chdir: "{{ zuul_work_dir }}"
- name: Run cabal build - name: Run cabal test {{ _cabal_test_args }}
command: cabal build command: "cabal test {{ _cabal_test_args }}"
args:
chdir: "{{ zuul_work_dir }}"
- name: Run cabal test
command: cabal test
args: args:
chdir: "{{ zuul_work_dir }}" chdir: "{{ zuul_work_dir }}"

View File

@ -2,3 +2,4 @@ Ensure cabal is installed
This role installs the cabal-install package and ensures This role installs the cabal-install package and ensures
the hackage packages list exists. the hackage packages list exists.
This role uses the Fedora copr package.

View File

@ -1,14 +1,24 @@
- name: Make sure the role is run on Fedora
fail:
msg: "This role supports Fedora only"
when: "ansible_distribution != 'Fedora'"
- name: Check cabal version - name: Check cabal version
command: cabal --version command: cabal --version
failed_when: false failed_when: false
register: _cabal_version register: _cabal_version
- name: Install cabal - block:
package: - name: Install cabal copr
name: cabal-install command: dnf copr enable -y petersen/cabal-install
state: present become: true
become: yes
when: "_cabal_version.rc != 0" - name: Install cabal
package:
name: cabal-install
state: present
become: true
when: _cabal_version.rc != 0
- name: Check package - name: Check package
stat: stat:

View File

@ -5,6 +5,10 @@
Responds to these variables: Responds to these variables:
.. zuul:jobvar:: cabal_target
The cabal target(s) to test.
.. zuul:jobvar:: ghc_version .. zuul:jobvar:: ghc_version
Use the specified ghc version (``latest`` picks the latest). Use the specified ghc version (``latest`` picks the latest).