Nuxt.js에서 SSG 한 사이트를 GitHub에서 Xserver로 ftps로 자동 배포
5894 단어 GitHubActionsftpsnuxt.jsxserver
배경
Xserver 준비
하위 FTP 계정을 만들어 둡니다.
GitHub Actions 설정
가정
- 패키지 관리자는 yarn을 사용.
- Node.js는 14.x를 사용.
FTP 호스트 계정을 리포지토리의 secret로 설정
리포지토리의 Settings 탭 → Serets 페이지에서 [New repository secret] 버튼을 눌러 각 파라미터를 입력해 둔다.
Action 만들기
/.github/workflows/main.ymlname: Deploy
on:
push:
branches:
- main
workflow_dispatch:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x' # プロジェクトに合わせて
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Node.js modules
id: yarn-cache
uses: actions/cache@v2
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.OS }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.OS }}-yarn-
- name: Install dependencies
run: yarn install --frozen-lockfile --prefer-offline
- name: Build
run: yarn generate
- name: Deploy
uses: SamKirkland/FTP-Deploy-Action@2a4e9b1312ebeb73a1f72b9330c71831c1e4ce01 # v4.0.0 のコミットハッシュ
with:
server: ${{ secrets.FTP_HOST }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PW }}
protocol: ftps
security: strict
local-dir: dist/
server-dir: public_html/
state-name: ../ftp-deploy-sync-state.json # 管理ファイルは公開フォルダの外に置く
exclude: .nojekyll # Nuxtが親切に作ってくれるけどXserverには要らない
비고
sync가 아니기 때문에 쓰레기가 모이는가? 자주 갱신하는 사이트나 사이즈가 큰 사이트라면 진지하게 sync의 구조를 설정하는, 아니 오히려 Netlify당을 제안하는 것이 좋을지도.
참고
가정
- 패키지 관리자는 yarn을 사용.
- Node.js는 14.x를 사용.
FTP 호스트 계정을 리포지토리의 secret로 설정
리포지토리의 Settings 탭 → Serets 페이지에서 [New repository secret] 버튼을 눌러 각 파라미터를 입력해 둔다.
Action 만들기
/.github/workflows/main.yml
name: Deploy
on:
push:
branches:
- main
workflow_dispatch:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x' # プロジェクトに合わせて
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache Node.js modules
id: yarn-cache
uses: actions/cache@v2
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.OS }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.OS }}-yarn-
- name: Install dependencies
run: yarn install --frozen-lockfile --prefer-offline
- name: Build
run: yarn generate
- name: Deploy
uses: SamKirkland/FTP-Deploy-Action@2a4e9b1312ebeb73a1f72b9330c71831c1e4ce01 # v4.0.0 のコミットハッシュ
with:
server: ${{ secrets.FTP_HOST }}
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PW }}
protocol: ftps
security: strict
local-dir: dist/
server-dir: public_html/
state-name: ../ftp-deploy-sync-state.json # 管理ファイルは公開フォルダの外に置く
exclude: .nojekyll # Nuxtが親切に作ってくれるけどXserverには要らない
비고
sync가 아니기 때문에 쓰레기가 모이는가? 자주 갱신하는 사이트나 사이즈가 큰 사이트라면 진지하게 sync의 구조를 설정하는, 아니 오히려 Netlify당을 제안하는 것이 좋을지도.
참고
Reference
이 문제에 관하여(Nuxt.js에서 SSG 한 사이트를 GitHub에서 Xserver로 ftps로 자동 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pinalto/items/df1da49e50d754831375텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)