GitHub Action으로 자동 배포

2091 단어 GitHubActionsGitHub

GitHub Actions란?



GitHub Actions는 CI 툴로 GitHub에서 자동 배포를 할 수 있다.
CircleCI 등과 마찬가지로 Git 리포지토리의 액션을 기점으로 조작할 수 있다.
거의 무료로 사용할 수 있습니다.

설정에 필요한 것



CI 구성 파일을 Git 리포지토리에 커밋합니다.
.github/workflows/deploy-server.yml

설정 방법



이번 예에서는 워드 프레스 테마 파일을 Git로 관리하고 마스터 브랜치에 커밋/병합된 타이밍에 서버(Xserver를 사용)에 배포한다.

구성 파일 만들기



관리되는 리포지토리에 .github/workflows/디렉토리를 만들고 yml 파일을 만듭니다.
name: deploy wordpress theme

on:
  push:
    branches:
      - master

jobs:
  deploy:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

      - name: ssh key generate
        run: echo "$SSH_PRIVATE_KEY" > key && chmod 600 key
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

      - name: rsync deploy
        run: rsync -auzrv --delete ./ $SSH_USER@$SSH_HOST:$DEPLOY_PATH --exclude ".git/" --exclude ".github/"  -e "ssh -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p ${SSH_PORT}"
        env:
          SSH_USER: ${{ secrets.SSH_USER }}
          SSH_HOST: ${{ secrets.SSH_HOST }}
          DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
          SSH_PORT: ${{ secrets.SSH_PORT }}

이름:
이 스크립트의 설명

on:
push:
branches:
   - master
무슨 일이 일어날 때이 스크립트를 시작합니까?
이 예에서는 마스터 브랜치로 푸시 될 때 시작됩니다.

jobs:
실제로 수행하는 작업을 설명합니다.

${{ secrets.SSH_USER }}
${{ }}로 둘러싸인 부분은 Github에서 설정함으로써 설정 파일에 기재하지 않고 런타임에 Github에서 읽혀진다.

변수 정의



Settings>Secrets에서 비공개로 만든 변수 정의


실행 결과 확인



Github에서 커밋하고 마스터 브랜치로 푸시

Actions 탭에서 결과를 확인하고 녹색 확인이 표시되면 배포 성공

좋은 웹페이지 즐겨찾기