전체 보기
🍀

릴리즈 노트 자동 생성, mac에서 linux/amd64로 도커 빌드

작성일자
2023/11/23
태그
DIARY_DEVELOP
프로젝트
FIS
책 종류
1 more property

1. 릴리즈 노트 자동 생성

actions/create-release 라는 오픈소스를 사용해서 릴리스를 생성하는 github action 스크립트를 쉽게 구성할 수 있다.
create-release
actions
리포지토리에 새로운 태그가 푸시될 때 자동으로 릴리스 노트를 생성하는 워크플로우를 구성해보겠다.
참고로, 태그 푸시를 자동으로 하는 것부터 해야 한다면 아래 글을 읽어보길 바란다.
릴리즈 노트를 자동생성하기 위한 코드부터 먼저 보여주자면, 아래와 같다. 나는 아래와 같이 구성했는데, 사실 오픈소스에서 제공하는 예시에서 크게 고칠 게 없었다.
.github/workflows/create-release-notes.yml
name: Create release notes on: push: tags: - 'v*' jobs: release-notes: runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-dev-') # 개발용 태그는 제외 steps: - name: Checkout code uses: actions/checkout@v2 - name: Extract tag name id: tag_name run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}" shell: bash - name: Create Release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ steps.tag_name.outputs.tag }} body: ${{ steps.generate_release_notes.outputs.notes }} draft: false prerelease: false
Java
복사
v로 시작하는 버전용 태그가 푸시되면,
(단, v1,1,1-dev-23423424234-1.0 과 같은 꼴의 dev 버전용 태그는 제외하고 v1.1.1 과 같은 꼴의 prod 버전용 태그만 적용)
refs/tags에 들어있는 태그 이름을 릴리즈 이름으로 삼아
릴리즈 노트를 생성한다.
굉장히 간단하지 않은가.
draft는 초안을 만드는 게 아니라서 꺼줬다. 켜주면 초안을 만들고, 꺼주면 게시된 릴리즈 노트를 생성한다.
prelease도 정식 릴리즈라 꺼줬다. 켜주면 릴리즈 노트를 시험판으로 식별하고, 켜주면 정식 릴리즈로 식별한다.

2. mac에서 docker로 build한 이미지 x86 ec2에서 사용하기

핵심은 linux/amd64 로 build하는 건데, 그렇게 하는 이유는 aws ec2 서버를 사람들이 보통 arm이 아닌 x86으로 만들기 때문이다.
로컬에서
brew install --cask docker → 도커 데스크탑까지 설치
docker build --platform linux/amd64 -t beachcombing . → 빌드
docker tag beachcombing choo000407/beachcombing
docker push choo000407/beachcombing
서버에서
sudo docker login 아이디 비번
sudo docker pull choo000407/beachcombing
sudo docker tag choo000407/beachcombing beachcombing
sudo docker-compose -p beachcombing up -d
로그 확인 → sudo docker-compose logs --tail 0 -f
참고