Olivier Massot 7 月之前
父節點
當前提交
548b7ff8f8
共有 2 個文件被更改,包括 37 次插入8 次删除
  1. 26 8
      .gitlab-ci.yml
  2. 11 0
      Dockerfile

+ 26 - 8
.gitlab-ci.yml

@@ -1,18 +1,36 @@
 stages:
-  - qa
+  - build
+  - analysis
+
+variables:
+  APP_ENV: ci
 
 cache:
   paths:
     - ./node_modules
     - .yarn
+    - yarn.lock
+
+build_image:
+  stage: build
+  image: docker:20.10
+  before_script:
+    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
+  script:
+    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
+    - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest
+    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
+    - docker push $CI_REGISTRY_IMAGE:latest
 
-before_script:
-  - corepack enable
-  - yarn set version 4.3.1
-  - yarn install --network-timeout 10000
-  - HOST=ci yarn prepare
+.default_config: &default_config
+  image: $CI_REGISTRY_IMAGE:latest
+  before_script:
+    - yarn install --network-timeout 10000
+    - HOSTNAME=ci yarn prepare
 
-qa:
-  stage: qa
+code_quality:
+  <<: *default_config
+  stage: analysis
   script:
     - yarn lint
+

+ 11 - 0
Dockerfile

@@ -0,0 +1,11 @@
+FROM node:20-slim
+
+ENV WORKDIR /home/workspace
+
+RUN corepack enable; \
+    yarn set version 4.3.1;
+
+# Define working directory.
+WORKDIR ${WORKDIR}
+
+CMD node