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
반복되는 작업 캐싱이 필요한 이유 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..
값의 전달이 필요한 이유 앞선 글에서 Job 간에 파일을 전달하는 방법에 대해 알아보았다. 하지만, 대용량 파일을 전달할 때 말고 단순한 값들을 전달하는 것이 필요할 때가 있다. 예를 들어 앞선 글들에서는 upload-artifact에서 name으로 사용한 값을 download-artifact를 사용하기 위해 똑같이 복사 붙여넣기 해주는 과정을 거쳤는데, 이 값을 직접 전달한다면 더욱 안정성이 증가할 것이다. 혹은 랜덤한 Hash 값을 전달해야 할 수도 있는데, 이 값을 매번 생성해주는 것보다는 전달하는 것이 좋다. 자 이제 outputs 객체에 데이터를 저장하고 꺼내는 방법에 대해 살펴보도록 하자. outputs 객체를 사용해 Job간에 데이터 전달하기 Job 간에 데이터를 전달하기 위해서는 outpu..
서로 다른 가상 머신에서 동작하는 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..
Workflow가 Cancel 되는 경우 Job이 실패하는 경우 Job이 Fail 되면 Workflow는 Cancel 된다. Job은 하나 이상의 Step이 Fail되면 Job은 자동으로 Fail된다. 또한 해당 Job을 필요로 하는 Job 또한 모두 실패한다. 직접 취소를 시키는 경우 Cancel workflow 버튼을 눌러 직접 Workflow를 취소 할 수 있다. Workflow가 취소 되었을 때 다시 실행하기 위에서 Cancel workflow 버튼을 누르면 아래와 같은 취소 화면이 뜬다. 여기서 Re-run jobs 를 누르면 실패한 Job을 다시 실행하거나 Workflow 자체를 처음부터 다시 실행 할 수 있다. Re-run failed jobs : 실패한 Job을 다시 실행 Re-run fa..