aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: aee47b7c6c8b364f4e86e2cb6c6581d7bf616057 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
stages:
  - Dist
  - Install
  - Test
  - Docker

Tarball:
  stage: Dist
  image: alpine:latest
  before_script:
    - apk add --no-cache bash coreutils curl git gnupg tar
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar fetch
    - ./bin/rstar dist "$CI_COMMIT_SHA"
  artifacts:
    paths:
      - dist

Rakudo Star:
  stage: Install
  image: alpine:latest
  before_script:
    - apk add --no-cache bash gcc libc-dev make perl
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
    - mkdir -p "$CI_PROJECT_DIR/opt"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar install -p "$CI_PROJECT_DIR/opt"
  artifacts:
    paths:
      - "$CI_PROJECT_DIR/opt"

QA:
  stage: Test
  image: alpine:latest
  before_script:
    - apk add --no-cache shellcheck
  script:
    - shellcheck bin/rstar
    - find lib -type f -iname "*.*sh" | xargs shellcheck

Rakudo Spectest:
  stage: Test
  image: alpine:latest
  before_script:
    - apk add --no-cache bash gcc libc-dev make perl
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar test -p "$CI_PROJECT_DIR/opt" spectest
  allow_failure: true

Community Modules:
  stage: Test
  image: alpine:latest
  before_script:
    - apk add --no-cache bash gcc git libc-dev make openssl-dev
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar test -p "$CI_PROJECT_DIR/opt" modules
  allow_failure: true

Alpine:
  stage: Docker
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    - apk add --no-cache bash
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" alpine
    - docker push "$CI_REGISTRY_IMAGE:latest-alpine"

Archlinux:
  stage: Docker
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    - apk add --no-cache bash
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" archlinux
    - docker push "$CI_REGISTRY_IMAGE:latest-archlinux"

Debian:
  stage: Docker
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    - apk add --no-cache bash
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" debian
    - docker push "$CI_REGISTRY_IMAGE:latest-debian"

CentOS:
  stage: Docker
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    - apk add --no-cache bash
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" centos
    - docker push "$CI_REGISTRY_IMAGE:latest-centos"

Fedora:
  stage: Docker
  image: docker:stable
  services:
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    - apk add --no-cache bash
    - cd "$(mktemp -d)"
    - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
    - cd "rakudo-star-$CI_COMMIT_SHA"
  script:
    - ./bin/rstar sysinfo
    - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" fedora
    - docker push "$CI_REGISTRY_IMAGE:latest-fedora"