yml 파일 분석 및 공부한것 정리

이명진·2023년 8월 1일
0

TIL

목록 보기
14/16

yml 파일 분석 및 공부한것 정리

빌드와 배포할때 쓰인다. yml 파일로 인해 많은 고생을 했었다. 처음배우는 부분이라서 혼자서 찾기 힘들었지만 그 시간 만큼 좋은 공부가 되었다.

React+Typescript 관련하여 빌드 및 배포에 사용한 yml 파일이다.

name: Build and deploy Node.js app to Azure Web App - test-

//이름을 쓰는 곳이다 유니크한 이름을 작성하자. yml 파일 작업의 총 이름이 된다. 

on:
  push:
    branches:
      - main
  workflow_dispatch:
  
 //브랜치와 작업 트리거를 설정할수 있다. push  이벤트가 main 에서 발생할때 시작한다는 것이다. 
 
env:
  AZURE_WEBAPP_NAME: reactapptutorial # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: "." # set this to the path to your web app project, defaults to the repository root
  NODE_VERSION: "18.x" # set this to the node version to use
//yml 파일만의 env 파일을 만들수 있는 것 같다. 아래 jobs 에서 env 파일로 접근한다. 


permissions:
  contents: read
jobs:
  build:
  //빌드 할때 하는 파이프 라인이다. 
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
 - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: "npm"
      - name: Cache node modules
        uses: actions/cache@v2
        id: cache
   // 아래 npm instll, build, and test 절차에서 npm install 절차를 많이 줄여주는 캐싱작업이다.
        with:
          path: node_modules
          key: npm-packages-${{hashFiles('**/package-lock.json')}}
  
      - name: npm install, build, and test
        run: |
          export CI=false
          npm install
          npm run build:prod --if-present
	// npm install 할수 있는 작업인데 package.json에서 bulid:prod로 prod 작업일때의 명령어를 선언해두었다.
    
      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v2
        with:
          name: node-app
          path: build
          retention-days: 1
     // artifact 관련사항으로 작업하는 부분이다. 무료로 쓰는 github 계정이라면 artifact 부분이 500메가 이기 때문에 주의 해야 한다. 
     // retention-days:1은 데이터를 1일동안 유지한다는 것이다. 기본값은 90일인데 1일로 변경해주었다. 

  deploy:
  // 배포 하는 단계에서 작업하는 상황이다. 
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: "Production"
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: node-app

      - name: "Deploy to Azure Web App"
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: "test"
          slot-name: "Production"
          publish-profile: ${{ secrets. }}
  // 이부분은 azure로 배포하면 자동으로 입력되긴하지만 github에서 key값을 찾을수 있다. 
          package: .

추가 사항으로 공부했을때 참고 한 사이트 이다.
카카오에 근무하면서 올리신것 같은데 많은 도움이 되었다.

원본 url : https://fe-developers.kakaoent.com/2022/220106-github-actions/

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글