[NHN] Github Action CI/CD

2024. 10. 23. 21:16·CNU SW 아카데미/15주차(최종 프로젝트)

깃헙 액션에서

 

java with maven 검색하면 딱 'java with maven'이라고 뜨는 것을 선택합니다.

 

mvn.yml 파일 설정 다 하면

 

이런 식으로 됩니다.

자바 버전에 맞게 'java-version'을 설정하고 'distribution'도 배포판에 맞게 설정하면 됩니다.

openjdk로 해 보려고 했는데 배포판이 맞지 않는다고 떠서 그냥 temurin으로 하게 되었습니다 ..

 

 

그 다음에 빌드하려면 에러가 뜰 겁니다. 안 뜨면 좋은 겁니다.

Error: HTTP Status 403 for request POST https://api.github.com/repos/nhnacademy-be7-2joping/2joping-front/dependency-graph/snapshots
Error: Response body:
{
  "message": "Resource not accessible by integration",
  "documentation_url": "https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository",
  "status": "403"
}
Error: Resource not accessible by integration
Error: HttpError: Resource not accessible by integration

이렇게 에러가 뜨는데 다음과 같이 설정을 수정해야 합니다.

 

settings의 워크플로우 퍼미션

Actions의 general입니다. 위와 같이 하면 됩니다.

쓰기 권한까지 설정해 주는 건데 yml(yaml 포함) 파일에 관한 설정입니다.

 

 

 

# 서버 인스턴스

다음으로 클라우드 서비스를 이용해서 인스턴스를 생성하고 올려 두는 것인데 이건 클라우드 서비스마다 다를 것이기 때문에 각자 원하는 서비스에 대해서 인스턴스를 생성하고 부여된 IP로 접속을 합니다. 저는 보통 우분투 서버를 선호합니다. 그런데 이때부터 좀 중요합니다.

건드리지 말아야 할 건 건드리지 말고 잘 설정해야 할 건 잘 설정해 주어야 인스턴스를 삭제하고 새로 생성한다든가 하는 등의 불상사가 발생하지 않습니다.

 

서버 인스턴스를 생성했다면 .pem 파일을 받을 겁니다. 이걸 로컬 환경 어딘가에 잘 저장해 두었다가 이 파일이 있는 경로에서 서버로 진입하면 됩니다.

 

명령어는 다음과 같습니다.

ssh -i {pem 파일 이름}.pem ubuntu@{부여된 IP}

위 명령어를 통해서 서버에 접속을 하면 root 권한으로 접속하게 된 것입니다.

 

sudo add user {원하는 이름}

위 명령어를 통해서 유저를 생성하고 비밀번호도 잘 설정해 주면 key를 생성해서 키를 보관할 폴더에 저장을 해 줍니다.

 

root로 진입했을 때의 private key와 유저의 public key 등을 이용해서 외부로부터의 접근을 허용하는 방식이 이제부터 Git Actions에서 할 일입니다.

 

Git의 작업 레포지토리에서 Actions 메뉴를 선택합니다.

 

그게 바로 맨 위에서 말한 내용입니다.

 

그리고 프로젝트가 레포지토리에 push될 때마다 서버에 upload를 하고 execute까지 자동으로 하는 게 CI/CD의 내용입니다.

 

이제부터 upload와 execute를 진행하도록 하겠습니다.

 

 

 

 

# Upload와 Execute

source는 target/*.jar 인데 source는 정말 그 자체로 실행시킬 .jar 파일이 있는 target 디렉토리를 가리켜야 합니다.

target은 위에서 말한 target 디렉토리와는 다른 의미를 가지는데 source에 있는 target은 디렉토리를 가리키고

target은 설정할 경로를 가리키는 것입니다.

 

# 로드 밸런싱

IP와 Port 설정을 해 줍니다.

 

# Dependency graph

의존성 그래프 설정도 열어 줘야 합니다.

Enable로 다 열어 주고
Work flow permissions도 다 열어 줘야 합니다.

 

 

 

 

'CNU SW 아카데미 > 15주차(최종 프로젝트)' 카테고리의 다른 글

[NHN] CI/CD 전체 설정 완전 사이클  (0) 2024.10.29
[NHN] 최종 과제 시작  (0) 2024.10.23
'CNU SW 아카데미/15주차(최종 프로젝트)' 카테고리의 다른 글
  • [NHN] CI/CD 전체 설정 완전 사이클
  • [NHN] 최종 과제 시작
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6)
        • Front (1)
        • Back (4)
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[NHN] Github Action CI/CD
상단으로

티스토리툴바