LoginSignup
11
6

More than 3 years have passed since last update.

GatsbyjsをGitLabのCI/CDで自動でレンタルサーバーにデプロイしてみた設定

Posted at

私は初心者です。ググりながら動かして見た設定ですので注意してください

参考: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転送してみます

Screen Shot 2020-01-27 at 0.32.06.png

ftp接続情報を設定

GitLabの左メニューの「Settings」>「CI/CD」>「Variables」を選択し、KeyValueにftp接続情報を設定し、「Save variables」をクリック

HOST "hogefugaxxx.sakura.ne.jp"
USERNAME "yourName"
PASSWORD "yourPass"
LOCAL "./public" ローカルのデプロイしたいフォルダを指定
SERVER "/home/hogefugaxxx/www/site/path" デプロイしたいレンタルサーバー内のパス

Screen Shot 2020-01-27 at 0.51.33.png

.gitlab-ci.yml を設定

.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をビルドし、publicフォルダをレンタルサーバーにデプロイしてくれました

Screen Shot 2020-01-27 at 1.12.32.png


さくらのレンタルサーバーで行ったのですが、デフォルトで国外IPアドレスからのftpアクセスを制限しているようなので、そこも外さないとダメでした


また、.ftpaccessを設置している場合も設定によってはgitlabのciからのftpアクセスができないので、そこも気をつけると良いと思いました。


見ていただいてありがとうございましたm(_ _)m

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6