You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gradle-build-action은 라이브러리뿐만 아니라 컴파일된 build 스크립트, Jar 파일 등도 캐싱합니다.
공식문서를 보면 대부분의 custom actions/cache 보다 정교하고 효율적으로 캐싱한다고 합니다.
프로젝트에는 gradle-build-action을 적용했습니다.
arguments : build, test, assemble 등 어떤 작업을 수행할지 명시합니다. 만약 arguments가 명시되지 않았다면, gradle을 실행하지 않습니다.
build-root-directory : gradle을 실행할 디렉터리를 지정합니다.
cache-read-only : true 혹은 false 중 하나의 값을 갖습니다. ${{ github.ref != 'refs/heads/branch_name' }} 를 통해 어떤 브랜치에서 cache 를 업데이트 할 수 있는지 설정했습니다. DEV 서버에 대한 CI의 경우 develop-backend 브랜치의 경우에만 cache 를 업데이트 할 수 있습니다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
백엔드는 Github actions 를 통해 CI 과정을 수행합니다.
DEV 서버에 대해서는 develop-backend 브랜치에 Pull requests 가 생성된다면 Github actions 가 제공하는 가상 머신에서 테스트를 포함한 빌드를 수행합니다.
이때 빌드는
./gradlew build
명령어를 사용합니다.경우에 따라 다르지만 이러한 CI 과정에는 매번 2분 내지는 3분 정도의 시간이 듭니다.
Caching
빌드에 캐싱을 적용한다면 CI 시간을 단축시킬 수 있습니다.
무엇을 캐싱할 수 있을까요?
우선 프로젝트에서 의존하는 라이브러리입니다.
./gradlew build
명령어로 빌드를 수행한다면 매번 라이브러리를 새로 받습니다.만약 라이브러리가 바뀌지 않았다면 매번 새로 받을 필요는 없을 것입니다.
actions/cache Action 을 이용하면 라이브러리 캐싱이 가능합니다.
yaml 파일 예시 입니다.
actions/gradle-build-action Action 을 사용할 수도 있습니다.
gradle-build-action은 라이브러리뿐만 아니라 컴파일된 build 스크립트, Jar 파일 등도 캐싱합니다.
공식문서를 보면 대부분의 custom actions/cache 보다 정교하고 효율적으로 캐싱한다고 합니다.
프로젝트에는 gradle-build-action을 적용했습니다.
${{ github.ref != 'refs/heads/branch_name' }}
를 통해 어떤 브랜치에서 cache 를 업데이트 할 수 있는지 설정했습니다. DEV 서버에 대한 CI의 경우 develop-backend 브랜치의 경우에만 cache 를 업데이트 할 수 있습니다.Beta Was this translation helpful? Give feedback.
All reactions