aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: f41da7d18ebdce49769a2c32474a145e8a0d92da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Currently using alpine as base
#image: alpine:latest
image: alpine:latest
# TODO: Migrate to another base including all the dependencies
# in order to avoid fetching and installing everything each time

stages:
    - build
    - test
    - deploy

variables:
    # Recursive submodule update
    GIT_SUBMODULE_STRATEGY: recursive

before_script:
    # Add the testing repo for SystemC
    - echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
    # Install all dependencies
    - apk update
    - apk add --no-cache
      bash findutils
      build-base bison flex
      doxygen graphviz
      systemc-dev
    - cp .config.gitlab-ci.mk config.local.mk

build:
    stage: build
    script:
      - make -j$(nproc) bin V=1
      - make -j$(nproc) lib V=1
    artifacts:
        paths:
            - "./specs"
            - "./libspecs.so"

test:
    stage: test
    script:
        # Only running a few tests manually for now
        - ./specs -t wg
        #- ./specs -t dc
        #- ./specs -t splitter
        #- ./specs -t merger
        #- ./specs -t detector
        #- ./specs -t phaseshifter
        # TODO: add other tests (both from -t and the circuit test files)
    dependencies:
        - build
    artifacts:
        paths:
            - "traces/*.vcd"

doc:
    stage: build
    script:
        - make doc
    artifacts:
        paths:
            - doc/pcm-doc.tar.xz
            - doc/html/
    only:
        - master


pages:
    stage: deploy
    script:
        - mkdir public
        - cp -R doc/html/* public
    dependencies:
        - doc
    artifacts:
        paths:
            - public
    only:
        - master