vue 프로젝트를 "롤리팝!"에 GitHub Actions를 사용하여 자동 배포
4418 단어 Vue.jsGitHubActions자동 배포롤리팝
소개
롤리팝 등의 렌탈 서버에 vue 등의 것을 수동으로 배포하는 것은 귀찮습니다.
이번에는 "테스트 -> 빌드 -> 배포"의 일련의 흐름을 GitHub Actions에서 자동으로 해주도록 설정합니다.
전제
workflow 만들기
vue 프로젝트의 리포지토리에서 Actions 탭을 열면 다음과 같은 페이지가 나타납니다.
Continuous integration workflows에서 Node.js를 선택하고 set up this workflow를 누릅니다.
이와 같은 페이지가 되면, 좋아하는 파일명을 붙이고 「Start commit」를 눌러 저장합시다.
workflow 편집
워크 플로우를 편집합니다.
FTP의 접속 정보등은, 파일에 써 버리면 좋지 않기 때문에 「GitHub Secrets」에 나중에 써 갑니다.
.github/workflows/hoge.yml# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ main ]
- pull_request:
- branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
- node-version: [10.x, 12.x, 14.x]
+ node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- - run: npm ci
- - run: npm run build --if-present
- - run: npm test
+ - name: npm install # パッケージをインストール
+ run: npm install
+ - name: test
+ run: npm run test:unit # unitテストを実行
+ - name: build # ビルド
+ run: npm run build --if-present
+
+ - name: List output files
+ run: ls # ファイルリストを表示
+
+ - name: FTP-Deploy-Action
+ uses: SamKirkland/[email protected] # FTPを使ってサーバーにDeployするアクションを実行
+ env:
+ FTP_SERVER: ${{ secrets.FTP_SERVER }} # FTPサーバーのURLを設定
+ FTP_USERNAME: ${{ secrets.FTP_USERNAME }} # FTPのユーザー名を設定
+ FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }} # FTPのパスワードを設定
+ LOCAL_DIR: dist # どのディレクトリのデータをアップロードするか
+ REMOTE_DIR: / # ロリポップ!FTPサーバのどのディレクトリにアップロードするか
+ ARGS: --delete
이제 메인 브랜치에 push되었을 때 자신의 롤리팝 FTP 서버의 루트에 vue의 빌드한 아티팩트가 올라가게 됩니다.
FTP 연결 정보 설정
GitHub Secrets에 FTP 연결 정보를 설정합니다.
먼저 '롤리팝!'에 로그인하여 '사용자 설정 - 계정 정보'를 엽니다.
"서버 정보"에 있는 "FTP 서버", "FTP 계정", "FTP 암호"를 기록해 둡니다.
메모되면 이전 리포지토리로 돌아가 리포지토리의 설정을 엽니다.
그 중에서 "Secrets"를 선택하고 "New Repository secrets"를 눌러 다음을 만듭니다.
워크 플로우를 편집합니다.
FTP의 접속 정보등은, 파일에 써 버리면 좋지 않기 때문에 「GitHub Secrets」에 나중에 써 갑니다.
.github/workflows/hoge.yml
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ main ]
- pull_request:
- branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
- node-version: [10.x, 12.x, 14.x]
+ node-version: [12.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- - run: npm ci
- - run: npm run build --if-present
- - run: npm test
+ - name: npm install # パッケージをインストール
+ run: npm install
+ - name: test
+ run: npm run test:unit # unitテストを実行
+ - name: build # ビルド
+ run: npm run build --if-present
+
+ - name: List output files
+ run: ls # ファイルリストを表示
+
+ - name: FTP-Deploy-Action
+ uses: SamKirkland/[email protected] # FTPを使ってサーバーにDeployするアクションを実行
+ env:
+ FTP_SERVER: ${{ secrets.FTP_SERVER }} # FTPサーバーのURLを設定
+ FTP_USERNAME: ${{ secrets.FTP_USERNAME }} # FTPのユーザー名を設定
+ FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }} # FTPのパスワードを設定
+ LOCAL_DIR: dist # どのディレクトリのデータをアップロードするか
+ REMOTE_DIR: / # ロリポップ!FTPサーバのどのディレクトリにアップロードするか
+ ARGS: --delete
이제 메인 브랜치에 push되었을 때 자신의 롤리팝 FTP 서버의 루트에 vue의 빌드한 아티팩트가 올라가게 됩니다.
FTP 연결 정보 설정
GitHub Secrets에 FTP 연결 정보를 설정합니다.
먼저 '롤리팝!'에 로그인하여 '사용자 설정 - 계정 정보'를 엽니다.
"서버 정보"에 있는 "FTP 서버", "FTP 계정", "FTP 암호"를 기록해 둡니다.
메모되면 이전 리포지토리로 돌아가 리포지토리의 설정을 엽니다.
그 중에서 "Secrets"를 선택하고 "New Repository secrets"를 눌러 다음을 만듭니다.
이것으로 모든 설정이 종료됩니다.
나중에 메인 브랜치에 Push 되었을 경우, 자동으로 「테스트 빌드 배치」가 행해지게 되어 있습니다.
결과나 상태를 보고 싶은 경우는, 「Actions」를 열면 다음과 같이 표시된다고 생각합니다.
이와 같이 체크 마크가 붙어 있으면 모든 job이 정상적으로 끝나고 있습니다.
참고로 한 기사 등
Reference
이 문제에 관하여(vue 프로젝트를 "롤리팝!"에 GitHub Actions를 사용하여 자동 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/harachan/items/08a92feb2dea921f99b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)