使用缓存执行在 Gitlab CI 上一阶段构建的二进制文件

时间:2021-03-29 11:38:48

标签: gitlab gitlab-ci

我正在尝试使用 Gitlab CI 在流水线阶段构建 C 代码并在以下阶段执行它。

问题是执行测试阶段没有找到二进制文件 我不想在每个阶段都重建以在管道期间使用更少的 CPU,所以我认为缓存应该是要走的路。

这是我的 .gitlab-ci.yml 文件:

stages: 
  - build
  - test
  - deploy

job:build:
  stage: build 
  before_script:
    - pwd
  script: 
    - mkdir bin/
    - gcc -o bin/main.exe *.c
  cache:
    key: build-cache
    paths:
      - bin/
  after_script:
    - ls -R

job:test:unit:
  stage: test 
  script: echo 'unit tests'

job:test:functional:
  stage: test 
  before_script:
    - pwd
    - ls -R
  script: 
    - echo 'functionnal test'
    - cd bin ; ./main.exe

job:deploy:
  stage: deploy 
  script: echo 'Deploy stage'

1 个答案:

答案 0 :(得分:0)

所以我发现我必须使用工件:

这是我的代码:

stages: 
  - build
  - test
  - deploy

job:build:
  stage: build 
  before_script:
    - pwd
  script: 
    - mkdir bin/
    - gcc -o bin/main.exe *.c
  artifacts:
   expire_in: 1 day
   paths:
      - bin/main.exe
  after_script:
    - ls -R

job:test:unit:
  stage: test 
  script: echo 'unit tests'

job:test:functional:
  stage: test 
  before_script:
    - pwd
    - ls -R
  script: 
    - echo 'functionnal test'
    - cd bin ; ./main.exe
  dependencies:
   - job:build

job:deploy:
  stage: deploy 
  script: echo 'Deploy stage'