2017-05-06 1 views
0

Gitlab에서 호스팅되는 프로젝트가 있습니다. 프로젝트 웹 사이트는 pages 지점 내에 있으며 jekyll 기반 사이트입니다.Gitlab CI가 '페이지'작업을 호출하지 않음

.gitlab-ci.yml 내가 master이 구성 파일을 밀어

pages: 
    script: 
    - gem install jekyll 
    - jekyll build -d public/ 
    artifacts: 
    paths: 
    - public 
    only: 
    - pages 

image: node:latest 

cache: 
    paths: 
    - node_modules/ 

before_script: 
    - npm install -g gulp-cli 
    - npm install 

test: 
    script: 
    - gulp test 

처럼 파이프 라인 pages 작업을 단지 test 작업을 실행하지 보인다. onlypages 지점이 지정되어 있기 때문에 master에이 작업을 호출하지 않았다고 생각했습니다. 그런 다음 pages 지점으로 밀어 넣으려고했지만 아무 소용이 없습니다.

pages 작업을 어떻게 트리거 할 수 있습니까?

+0

페이지 작업을 언제 실행해야합니까? 모든 지점마다? befor, after 또는 simultan 테스트? – Rufinus

+0

정의 단계가없는 afair https://docs.gitlab.com/ce/ci/yaml/README.html#stages - 테스트가 성공적으로 완료되면 페이지 작업 만 실행됩니다. – Rufinus

+0

페이지 분기로 밀어 넣거나 병합 할 때마다 실행되어야합니다. 그리고 예 테스트가 완료된 후에도 실행되지 않았습니다. –

답변

1

only 제약 조건은 only 절에 지정된 ref's 또는 branches에서만 작업을 실행한다고 가정하는 것이 옳습니다.

그것은 분기 및 작업이 같은 이름을 가지고 있기 때문에 충돌이 있다고 할 수

https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except를 참조하십시오. 테스트를 위해 다른 이름으로 작업 이름을 바꿀 수 있습니까?

+0

문서에서는'pages'는 "특별한"작업이라고 말합니다. 이것은 무엇을 의미 하는가? 이름 변경이 아무런 영향을 미치지 않을까요? https://docs.gitlab.com/ce/ci/yaml/#pages –

+1

@ChiragArora 작업 이름을 'pages'로 지정해야합니다. 이것이 GitLab Pages로 사이트를 전개 할 것입니다. 작업 이름을 변경하면 사이트가 배포되지 않습니다. –

0

몇 가지 시도해 보겠습니다. 먼저 , 나는 YML의 상단이 stages 조각에 넣어 것 :

stages: 
    - test 
    - pages 

이 명시 적으로 test 단계가 성공 후 pages 단계를 실행할 수있는 CI를 알려줍니다.

그래도 문제가 해결되지 않으면 only 태그를 제거하고 어떻게되는지 확인하십시오.

+0

실제로 작동 한 것은 .gitlab-ci.yml을 페이지 브랜치 자체에 푸시해야하고 마스터 브랜치에 푸시해야한다는 것이 었습니다. 이 문서는 문서화가 잘되어 있지 않으며이를 명시 적으로 말하지 않습니다. –

0

@rex 대답의는 보완 :

당신도 할 수 :

pages: 
    script: 
    - gem install jekyll 
    - jekyll build -d public/ 
    artifacts: 
    paths: 
    - public 
    only: 
    - master # or whatever branch you want to deploy Pages from 

배포 할 페이지 master에서에 관계없이 분기 이름 귀하의 사이트를 배포, 또는 것

pages: 
    script: 
    - gem install jekyll 
    - jekyll build -d public/ 
    artifacts: 
    paths: 
    - public 

.

Pls가 도움이되는지 알려주세요. :)

+0

실제로 작동 한 것은 .gitlab-ci를 밀어야한다는 것이 었습니다.yml을 페이지 분기 자체에 적용하고 마스터 분기에는 적용하지 않습니다. 이 문서는 문서화가 잘되어 있지 않으며이를 명시 적으로 말하지 않습니다. –

+0

GitLab 페이지에는 많은 문서가 있습니다 : https://docs.gitlab.com/ce/user/project/pages/. Git으로 작업 할 때 기본 분기 (보통 master)에서 새 분기를 계산할 것으로 예상됩니다. 따라서 각 브랜치는 해당 브랜치에서 변경되는 파일을 제외하고 동일한 파일을 포함합니다. (그래서 각 브랜치는'.gitlab-ci.yml' 파일을가집니다.) => 참조를 위해 https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Mering을 참조하십시오. . 하지만 당신 말이 맞아요. 분명히 말하는 의사가 있다고 생각하지 않습니다. ;) –

관련 문제