🐶 etc/Github

git actions을 사용해서 팀 배포에서 개인 배포로 연동하기

서카츄 2024. 8. 13. 16:43

Vercel에서 배포를 진행했는데, 팀 배포는 2주일 동안 무료로 진행되는 거라
개인 배포로 진행해보기로 했다.
 

 

그 전에 할일

1. 팀 레포 fork떠가기
2. 버셀에 fork 떠간거 개인 hobby로 배포해두기
 
먼저 이 두개를 세팅해둔 뒤, 깃허브 세팅으로 들어간다.
 
 
 

깃허브 세팅

 
먼저 내 깃허브로 들어가서 Settings로 들어간다
 
 
 
 
 
 
 

 
설정으로 들어갔으면, 맨 왼쪽 아래에 있는
Developer settings를 클릭해준다.
 
 
 
 
 
 
 

 
그리고 Tokens(classic)을 클릭 한 뒤,
Generate a personal access token을 클릭해줘서 토큰을 발급 받아 준다.
 
 
 
 
 
 
 
 

 
이름을 입력해주고, 나는 토큰 발급 기간을 무제한으로 설정해주었다. 
그리고 아래에 있는 repo만 체크하고 맨 아래에있는
Generate token 버튼을 클릭해준다.
 
 
 
 
 
 

 
그럼 ghp_로 시작하는 토큰이 발급되었다.
한번밖에 못받아서 메모장에 잘 저장해둔다.
 
 
 
 
 

팀 레포지토리로 이동, build.sh 파일 생성

#!/bin/sh
cd ../
mkdir output
cp -R ./[team-repo-name]/* ./output
cp -R ./output ./[team-repo-name]/

team-repo-name은 팀의 레포지토리 이름(프로젝트 이름)을 입력해준다.
 
 
 
 
 
 
 

 
편하게 팀 레포지토리로가서
Add file → Create new file로 가서 생성해주었다.!
 
 
 
 
 
 
 
 

[team-repo-name] 대신 팀 레포지토리 이름을 입력해준다
우리는 레포지토리 이름이 ice-craft-FE로 되어있으니 ice-craft-FE로 입력해 주었다.
 
 
 
 
 

팀 레포지토리 설정으로 이동해주자!

 
팀 레포지토리 프로젝트 세팅으로 들어가서
Secrets and variables 에있는 Actions를 클릭해준다.
 
 
 
 
 
 

 
New repository secret 를 클릭해주고
 
 
 
 
 
 

 
여기에 환경변수를 넣어준다. (아까 ghp_로 시작하는 발급받은 키)
그리고 본인 깃허브 계정 이메일, 두가지를 넣어준다.
 
 
 
 
 
 

 
이렇게 넣어주었다!
 
 
 
 
 
 

프로젝트에 Action을 넣어준다.

다시 우리 프로젝트 레포지토리로 가서 deplay.yml 이라는 이름으로 코드를 작성해주었다.

 
간편하게 새로 new file을 만들어준다.
 
 
 

 
경로가 제일 중요함!
위에 .github/workflows/deplay.yml 에 경로를 먼저 설정해주고,
아래에 있는 코드를 복사해서 붙여줬다.
 
 
 
 

name: Deploy

on:
  push:
    branches: ['main']

jobs:
  build:
    runs-on: ubuntu-latest
    container: pandoc/latex
    steps:
      - uses: actions/checkout@v2

      - name: Install mustache (to update the date)
        run: apk add ruby && gem install mustache

      - name: creates output
        run: sh ./build.sh

      - name: Pushes to another repository
        id: push_directory
        uses: cpina/github-action-push-to-another-repository@main
        env:
          API_TOKEN_GITHUB: ${{ secrets.AUTO_ACTIONS }}
        with:
          source-directory: 'output'
          destination-github-username: "깃허브 계정"
          destination-repository-name: "내 계정에서 배포한 레포지토리 이름"
          user-email: ${{ secrets.EMAIL }}
          commit-message: ${{ github.event.commits[0].message }}
          target-branch: main

      - name: Test get variable exported by push-to-another-repository
        run: echo $DESTINATION_CLONED_DIRECTORY

 
"깃허브 계정"과 
"내 계정에서 배포한 레포지토리 이름" 을 넣어준다
깃허브 계정은 내가 맨날 보는 overview 에 있는 내 닉네임이고,
내 계정에서 fork에서 떠갔을 때, 새로 브랜치명 생성한 이름이다.
 
 
 
 
 
 

 
빨간색으로 표시해 둔 곳만 잘 입력해 두면 된다.
API토큰은 앞서 내가 ghp_로 시작했던 토큰 키 이름을 넣어 주었는데, 그 이름과 일치해야한다.
레포지토리 이름은 내가 포크뜰때 새로 생성한 레포지토리 이름인것을 명확하게 적어주자!
 
 
 
 
 
 

팀 레포지토리 Actions 탭을 클릭해서 제대로 반영됐는지 확인

 
팀 레포지토리로 들어가서 Actions를 클릭해보면
성공 표시가 되어있는 것을 확인할 수 있다.
잘못입력하면 아래처럼 잘 안됐다고 되어있는 모습을 확인할 수 있다.ㅜㅜ
계속 여러가지 시도해봤는데 잘 안돼서
내가 자세히 적어야 팀원들에게 알려줄 수 있어서 자세하게 적어보았다.....ㅎㅎ ;;;
 
 
 
깃허브 액션을 도입해서 팀 레포지토리랑 연동해서 수정되어도 계속 최신화로 유지,
간편하게 배포할 수 있어서 좋았다.!
처음 해보니까 어려웠지만 한번 삽질 몇번 하고나니 쉽게 연동했다.
어서 팀원들한테 알려주러가야지 헤헤😁