Add a Gitlab CI script that runs Circle CI validation jobs
[ghc.git] / .gitlab-ci.yml
1 # image: ghcci/x86_64-linux:0.0.4
2 variables:
3   GIT_SSL_NO_VERIFY: "1"
4
5 before_script:
6   - mkdir -p ~/.ssh
7   - chmod 700 ~/.ssh
8   #- git config --global user.email "user@example.com"
9   #- git config --global user.name "User name"
10   - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
11   - chmod 644 ~/.ssh/known_hosts
12   #- sudo apt-get update -y
13   #- sudo apt-get install jq wget -y
14   #- 'which ssh-agent || sudo apt-get install openssh-client -y'
15   - eval $(ssh-agent -s)
16   ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
17   ## We're using tr to fix line endings which makes ed25519 keys work
18   ## without extra base64 encoding.
19   ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
20   ##
21   - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
22
23 # All validation jobs keep the bindists and test results are artifacts,
24 # when we get far enough to generate them.
25 #
26 # This requires updating the maximum artifacts size limit in Gitlab to
27 # something like 200MB.
28
29 validate-x86_64-linux:
30   script: ".gitlab/circle-ci-job.sh validate-x86_64-linux"
31   artifacts:
32     when: always
33     reports:
34       junit: junit.xml
35     paths:
36       - ghc.tar.xz
37       - junit.xml
38
39 validate-i386-linux:
40   script: ".gitlab/circle-ci-job.sh validate-i386-linux"
41   artifacts:
42     when: always
43     reports:
44       junit: junit.xml
45     paths:
46       - ghc.tar.xz
47       - junit.xml
48
49 # validate-x86_64-freebsd:
50 #   script: ".gitlab/circle-ci-job.sh validate-x86_64-freebsd"
51 #   artifacts:
52 #     when: always
53 #     reports:
54 #       junit: junit.xml
55 #     paths:
56 #       - ghc.tar.xz
57 #       - junit.xml
58
59 validate-x86_64-darwin:
60   script: ".gitlab/circle-ci-job.sh validate-x86_64-darwin"
61   artifacts:
62     when: always
63     reports:
64       junit: junit.xml
65     paths:
66       - ghc.tar.xz
67       - junit.xml
68
69 validate-hadrian-x86_64-linux:
70   script: ".gitlab/circle-ci-job.sh validate-hadrian-x86_64-linux"
71   # the testsuite doesn't pass with hadrian yet...
72   #
73   # artifacts:
74   #   when: always
75   #   reports:
76   #     junit: junit.xml
77   #   paths:
78   #     - ghc.tar.xz
79   #     - junit.xml
80
81 # validate-x86_64-linux-unreg:
82 #   script: ".gitlab/circle-ci-job.sh validate-x86_64-linux-unreg"
83 #   artifacts:
84 #     when: always
85 #     reports:
86 #       junit: junit.xml
87 #     paths:
88 #       - ghc.tar.xz
89 #       - junit.xml
90
91 # validate-x86_64-linux-llvm:
92 #   script: ".gitlab/circle-ci-job.sh validate-x86_64-linux-llvm"
93 #   artifacts:
94 #     when: always
95 #     reports:
96 #       junit: junit.xml
97 #     paths:
98 #       - ghc.tar.xz
99 #       - junit.xml
100
101 # validate-x86_64-linux-debug:
102 #   script: ".gitlab/circle-ci-job.sh validate-x86_64-linux-debug"
103 #   artifacts:
104 #     when: always
105 #     reports:
106 #       junit: junit.xml
107 #     paths:
108 #       - ghc.tar.xz
109 #       - junit.xml
110
111 # slow-validate-x86_64-linux:
112 #   script: ".gitlab/circle-ci-job.sh slow-validate-x86_64-linux"
113 #   artifacts:
114 #     when: always
115 #     reports:
116 #       junit: junit.xml
117 #     paths:
118 #       - ghc.tar.xz
119 #       - junit.xml