Compress/Upload Error Report & Cache Gradle

2023. 5. 23. 21:17·⚙️ Ops/CI & CD

Github Actions Error Report

Github Actions Build 실패 시 에러로그가 담긴 파일을 준다.

file:///home/runner/work/Query-Builder/Query-Builder/build/reports/tests/test/index.html

이런 식으로 주는데 Github Actions Runner 내부 경로라 접근이 불가능하다.

그래서 빌드 실패 시 오류가 날때 Workflow에 저 에러의 내용을

압축해서 빼와보자.


에러내용을 압축하는 Workflow

- name: Compress All Report Files  
  if: ${{ failure() }}  
  run: |  
    echo "Compressing All Report Files..."  
    TIMESTAMP=$(date +%Y%m%d_%H%M%S)  
    mkdir report_files  
    REPORT_DIRS=$(find . -type d -path '*/build/reports/tests/test')  
    for dir in $REPORT_DIRS; do  
      module_path=$(echo $dir | awk -F'/build/' '{print $1}' | cut -c 3-)  
      cp -r "$dir" "report_files/$module_path/$(basename "$(dirname "$dir")")"  
    done  
    tar czvf "report_files_$TIMESTAMP.tar.gz" report_files

압축을 한 파일을 Github Actions Artifacts를 이용해 가져오자.

- name: Upload Error Report Files to Artifacts  
  if: ${{ failure() }}  
  uses: actions/upload-artifact@v3  
  with:  
    name: report_files  
    path: report_files_*.tar.gz

이 업로도된 파일에 접근 방법은 Github Action 페이지의 Summury로 들어가면 된다.


아티팩트 잘 나온 모습

img


Cache Gradle

Github Action CI 빌드 시 Gradle을 캐싱해 빌드 속도를 향상시킨다.

- name: Cache Gradle dependencies  
  uses: actions/cache@v3  
  with:  
    path: ~/.gradle/caches  
    key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}  
    restore-keys: |  
      ${{ runner.os }}-gradle-
저작자표시 (새창열림)

'⚙️ Ops > CI & CD' 카테고리의 다른 글

Github Actions Self-Hosted-Runner  (3) 2023.05.24
Work flow Commit Message Filter  (0) 2023.05.24
CI & CD Tool 선정  (0) 2023.05.23
[CI & CD - AWS] 5 - Automated Deployment  (0) 2023.04.16
[CI & CD - AWS] 4 - ELB & Cert & Route53  (0) 2023.04.16
'⚙️ Ops/CI & CD' 카테고리의 다른 글
  • Github Actions Self-Hosted-Runner
  • Work flow Commit Message Filter
  • CI & CD Tool 선정
  • [CI & CD - AWS] 5 - Automated Deployment
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      GStreamer #Pipeline
      React #Markdown
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Compress/Upload Error Report & Cache Gradle
    상단으로

    티스토리툴바