Gatsbyjs를 GitLab의 CI/CD로 자동으로 렌탈 서버에 배포해 본 설정

저는 초보자입니다. 움직이면서 움직이는 설정이므로주의하십시오.

참고 : GitLab에 커밋한 후 FTP로 서버에 업로드하는 자동화를 1분 내에 수행하는 방법. - "Git" | webmanab.html / 웹 마나부

프로젝트 만들기


$ npx -p gatsby-cli gatsby new hoge-site
$ cd hoge-site
$ npx gatsby develop

http://localhost:8000/ 에서 사이트가 시작되었으므로 이것을 GitLab의 CI/CD로 대여 서버로 ftp 전송해 보겠습니다.



ftp 연결 정보 설정



GitLab의 왼쪽 메뉴에서 Settings > CI/CD > Variables를 선택하고 Key




HOST
"hogefugaxxx.sakura.ne.jp"

USERNAME
"yourName"

PASSWORD
"yourPass"

LOCAL
"./public"
로컬 배포할 폴더 지정

SERVER
"/home/hogefugaxxx/www/site/path"
배포하려는 임대 서버의 경로




Value 설정


.gitlab-ci.yml 를 프로젝트 바로 아래에 작성

gitlab-ci.yml
image: node

before_script:
  - npm install
  - npm run build

build:
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    - lftp -c "set ftp:ssl-allow no; open -u $USERNAME,$PASSWORD $HOST; mirror -R $LOCAL $SERVER --parallel=10"
  only:
    - master
.gitlab-ci.yml 를 커밋에 포함한 상태에서 master에 push나 merge 등을 하면 자동으로 gatsbyjs를 빌드하고 .gitlab-ci.yml 폴더를 렌탈 서버에 배포해 주었습니다.



사쿠라의 렌탈 서버로 갔는데, 기본적으로 국외 IP 주소로부터의 ftp 액세스를 제한하고있는 것 같기 때문에 거기도 빼지 않으면 안됩니다.



또, public 를 설치하고 있는 경우도 설정에 따라서는 gitlab의 ci로부터의 ftp 액세스를 할 수 없기 때문에, 거기도 조심하면 좋다고 생각했습니다.

보고 주셔서 감사합니다 m (_ _) m

좋은 웹페이지 즐겨찾기