forked from nrandecker/particle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
58 lines (55 loc) · 1.45 KB
/
.gitlab-ci.yml
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
stages:
- test
- deploy
test:
image: library/node:latest
stage: test
script:
- npm install
- npm run lint
- npm run build
docker-build:
stage: deploy
image:
name: gcr.io/kaniko-project/executor:debug
pull_policy: always
entrypoint: ['']
before_script:
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"},\"https://index.docker.io/v1/\":{\"auth\":\"$DOCKER_TOKEN\"}}}" > /kaniko/.docker/config.json
script:
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
--destination "${CI_REGISTRY_IMAGE}/${ARCH}:2.0.${CI_PIPELINE_IID}"
--destination "${CI_REGISTRY_IMAGE}/${ARCH}:latest"
rules:
- if: $CI_COMMIT_BRANCH == "main"
parallel:
matrix:
- ARCH: amd64
- ARCH: arm64
tags:
- runner-${ARCH}
merge-manifests:
stage: deploy
needs:
- job: docker-build
artifacts: false
image:
name: mplatform/manifest-tool:alpine
entrypoint: [""]
script:
- >-
manifest-tool
--username=${CI_REGISTRY_USER}
--password=${CI_REGISTRY_PASSWORD}
push from-args
--platforms linux/amd64,linux/arm64
--template ${CI_REGISTRY_IMAGE}/ARCH:${TAG}
--target ${CI_REGISTRY_IMAGE}:${TAG}
parallel:
matrix:
- TAG: latest
- TAG: 2.0.${CI_PIPELINE_IID}
rules:
- if: $CI_COMMIT_BRANCH == "main"