배포하기 - Heroku

Heroku 입문

Posted by Yan on November 13, 2023

Heroku 사용하기

1. Heroku에서 앱 생성
2. API key 설정

account setting 에서 API key를 복사해서 github repository의 Settings > Secrets > Actions secrts > New secret >

  • Name : HEROKU_DEPOLY_KEY
  • Value : 복사한 API Key로 설정
3. 배포 시나리오 작성

repo의 .github > workflows > deploy.yml에 배포 시나리오 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# This is a basic workflow to help you get started with Actions

name: Deploy

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [ main ] # main 브랜치에 push될 때 트리거가 됨
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v3 # git checkout 후 heroku에 deploy 하게 됨

      - name: Deploy to Heroku
        uses: AkhileshNS/heroku-deploy@v3.12.12
        with:
          # This will be used for authentication. You can find it in your heroku homepage account settings
          heroku_api_key: $ # github settings에 설정한 api key
          # Email that you use with heroku
          heroku_email: 000000@gmail.com
          # The appname to use for deploying/updating
          heroku_app_name: sns-feed-projects
4. repo에 system.properties 파일 생성
  • 사용하는 자바 버전 명시하여 Heroku에서 문제가 발생하지 않도록 함.
1
java.runtime.version=11
5. repo에 Procfile 생성
  • Heroku 앱이 떴을 때 어떤 일을 할 건지 명령어를 명시함.

  • jar 파일을 만드는 빌드 명령어

  • settings.gradle 파일의 rootProject.name = ‘sns’로 설정되어 있고, build.gradle파일의 version이 ‘0.0.1-SNAPSHOT’로 설정되어 있어 jar 파일의 제목을 sns-0.0.1-SNAPSHOT.jar로 설정됨

1
web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/sns-0.0.1-SNAPSHOT.jar