CI\CD

    [GitHub Actions] 보안이 필요한 값을 Secrets 기능을 통해 저장하기

    보안이 필요한 변수와 Environment Variable 앞선 글에서 Environment Variable을 사용해 변수에 값을 저장하는 방법에 대해 배웠다. 하지만 Environment Variable을 사용해 DB이름이나 계정의 비밀번호 혹은 토큰을 저장하게 되면 보안에 문제가 생길 수 있다. 이를 해결하기 위해 쓰는 것이 바로 Secrets이다. Secrets는 Environment Variable과 비슷하게 동작하지만, 외부로 공개되지 않는 Key-Value 쌍이다. 따라서 토큰이나 비밀번호 같은 보안이 필요한 정보들은 Secrets를 통해 저장해야 한다. 자 Secrets를 설정하는 방법에 대해 알아보자. Secrets 설정하기 1. Settings -Secrets - Actions 에 진입한..

    [GitHub Actions] Environment Variable 사용해 변수 정의하기

    GitHub Action의 Environment Variable이란 무엇인가? Environment Variable이란 환경에 설정할 수 있는 변수이다. 프로그래밍에서 공통으로 사용할 수 있는 변수를 설정할 수 있는 것과 같다. Environment Variable 선언하기 Environment Variable은 다음과 같이 env: 블록 안에 [KEY]: [VALUE] 쌍으로 선언할 수 있다. env: [KEY]: [VALUE] 만약 복수의 Environment Variable을 선언하고 싶다면 아래와 같이 줄바꿈으로 여러 Key-Value 쌍을 만들면 된다. env: [KEY1]: [VALUE1] [KEY2]: [VALUE2] Environment Variable을 선언할 수 있는 위치 Environ..

    [GitHub Actions] cache Action 사용해 반복되는 작업 캐싱하기

    반복되는 작업 캐싱이 필요한 이유 CI/CD 작업을 하면 계속해서 반복되는 작업들이 있다. 만약 이런 작업들이 반복된다면 리소스가 낭비되며, 요금 청구가 늘어날 수 있다. 특히 GitHub Action의 경우 무료 사용자에게는 2000분의 시간만을 무료로 제공해주고 Pro 사용자에게는 3000분만을 무료로 제공해주기 때문에 리소스 사용을 아껴야 할 필요가 있다. 이러한 반복되는 작업들은 GitHub Actions에서 제공해주는 cache Action을 통해 해결이 가능하다. cache Action은 GitHub에서 공식적으로 지원하는 캐싱 방식이다. 참고 : https://github.com/actions/cache GitHub - actions/cache: Cache dependencies and bu..

    [GitHub Actions] outputs 객체 사용해 Job 간에 간단한 value 전달하기

    값의 전달이 필요한 이유 앞선 글에서 Job 간에 파일을 전달하는 방법에 대해 알아보았다. 하지만, 대용량 파일을 전달할 때 말고 단순한 값들을 전달하는 것이 필요할 때가 있다. 예를 들어 앞선 글들에서는 upload-artifact에서 name으로 사용한 값을 download-artifact를 사용하기 위해 똑같이 복사 붙여넣기 해주는 과정을 거쳤는데, 이 값을 직접 전달한다면 더욱 안정성이 증가할 것이다. 혹은 랜덤한 Hash 값을 전달해야 할 수도 있는데, 이 값을 매번 생성해주는 것보다는 전달하는 것이 좋다. 자 이제 outputs 객체에 데이터를 저장하고 꺼내는 방법에 대해 살펴보도록 하자. outputs 객체를 사용해 Job간에 데이터 전달하기 Job 간에 데이터를 전달하기 위해서는 outpu..

    [GitHub Actions] Job 간에 파일 공유하기

    서로 다른 가상 머신에서 동작하는 Job build Job을 통해 ubuntu-latest 머신에 저장된 파일들은 다른 Job에서 접근이 불가능하다. 같은 이름의 머신이더라도 실제는 다른 가상 머신에서 돌아가기 때문이다. 따라서 build Job 다음에 실행되는 deploy Job을 추가한 다음 위에서 Apk를 Job Artifact로 만드는데 사용한 Path를 제공한다면 접근할 수 없다. 한 번 시도해 보자. 먼저 빌드를 하는 Job을 만든다. build: runs-on: ubuntu-latest steps: - name: Check out Repository uses: actions/checkout@v3 - name: set up JDK 11 uses: actions/setup-java@v3 with..