마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

github actions yml파일

0 추천
github actions를 이용해서 ci/cd를 구축해야되는데요

찾아보니 github marketplace에서 다른 사람들이 만들어놓은 걸 쓸수있다고 해서

android ci/cd 이런식으로 검색해보면 다 github들이 나오더라구요 거기서

yaml파일만 복사해다가 .github/workflows 폴더에 넣고 돌려보면 다 빌드들이 실패하는데
yaml파일만 복사하는거아닌가요?
https://docs.github.com/ko/actions/quickstart 여기서는 그냥 yaml파일만 복사하니 성공하던데
수원통학러 (3,570 포인트) 님이 2월 28일 질문

1개의 답변

0 추천
거기에 올라온 것들은 가장 일반적인 형태로 빌드를 하는 경우를 가정했을 겁니다. 따라서, yaml 파일의 내용이 님의 프로젝트에서 필요한 것들과 일치해야겠죠.제일 비슷한 걸 받으셔서내용을 확인하시고 님의 프로젝트에 맞게 수정하세요.
그리고 기본 빌드 설정만 사용하는 아주 간단한 프로젝트라면 yaml 파일 수정없이도 사용할 수 있을 가능성이 더 높겠죠.
spark (227,530 포인트) 님이 2월 29일 답변
깃허브 액션으로 yml파일을 이렇게 만들었는데요
name: GitHub Actions Demo
on:
  workflow_dispatch:
  push:
    branches:
      - develop
      - feature/**
  pull_request:
    branches:
      - develop


jobs:
  first-job:
    runs-on: ubuntu-latest
    steps:
      - name: checkout repo
        uses: actions/checkout@v3

      - name: Cache Gradle
        uses: actions/cache@v3
        with:
          path:
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
          restore-keys:
            ${{ runner.os }}-gradle-

      - name: set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'
          cache: gradle

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Build with Gradle
        run: ./gradlew test

      - name: Build AAB with Gradle
        run: ./gradlew bundleRelease

스크립트는 성공하는데 aab가 생성되지 않습니다 이유가 뭔가요..?
빌드를 하고 archive를 해줘야 다운로드 받을 수 있게 파일이 보이게 됩니다.
gradle 8이상에서만 aab를 추출할수있거나 그런건아니죠?
이것도 해봤는데요
https://github.com/marketplace/actions/automated-build-android-app-with-github-action
여기 깃헙을 보고 테스트로 프로젝트 새로 파서 하면 aab가 추출되는데
실제 프로젝트에 적용하면 gradle 8.0 deprecated하면서 에러가 나옵니다
지피티한테 물어보니 agp를 업그레이드해야된다고하는데, 올리면 전부 터져버려서 올릴수는 없을 것 같구요 현재 agp 7.1.2 gradleversion 7.2 사용중입니다
처음에 한 yml파일에서 archive는 어떻게 하는건지 알려주실수 있을까요?
지금 2주넘게 삽질중인데 도저히 모르겠습니다 casa 보안평가때문에 ci cd 구축중인데..
위에 찾으신 예제가 이미 다운로드 받을 수 있는 액션이 포함되어 있네요.
(# Noted For Output [main_project_module]/build/outputs/bundle/release/)
에러 나는 부분은 님 프로젝트에 맞게 관련 툴의 버전을 맞추셔야 겠죠.
Github action빌드 머신이 여러사람이 사용하는 리눅스 머신이라 빌드만 돌려서는 앱파일에 접근이 안되기 때문에 추가 액션이 필요해요. Gradle에 bundle 태스크가 없으면 지원이 안되는 거겠죠. 따라서 ./gradlew bundleRelease 부분에서 에러가 나면 지원이 안되는 거라고 보시면 됩니다.
aab 파일까지 추출 성공했습니다
다만  자동화된 배포 스크립트를 사용하여 애플리케이션, 해당 구성 및 모든 종속성을 재배포할 수 있고, 문서화되고 테스트된 Runbook을 통해 합리적인 시간 내에 구축하거나 적시에 백업에서 복원할 수 있습니까?

이거를 충족시켜야되는데요 runbook에 대해서 찾아봐도 잘 나오지 않습니다
https://github.com/OctopusDeploy/run-runbook-action
이거 하나찾았는데 여기서 말하는 runbook이 이걸말하는건가요?
https://www.pagerduty.com/resources/learn/what-is-a-runbook/
runbook은 저는 익숙하지 않는 용어인데, 가이드나 매뉴얼로 보면 될 것 같습니다. 전체적인 맥락으로 볼 때는 빌드스크립이 CICD를 구축하는데 재사용이 쉽게 될 수 있는지, 매뉴얼에 적힌 절차대로 하면 별 문제없이 CICD가 가능한지에 대한 부분이네요. CICD 매뉴얼을 작성하셔야 할 것 같은데, 이 부분이 시간이 많이 걸리겠네요.
배포에 대한 부분도 포함되어 있기 때문에 CD, 즉 빌드 후에 PlayStore같은데 올리고 테스터들에게 알림이 가게 하는 부분도 점검해 보셔야할 것 같은데요.
이거를 깃허브 리드미에 적어둬야되는걸까요?
casa 보안평가도 ci cd도 처음인지라 이걸 내용은 그렇다고 쳐도
이걸 어디에 보여줘야?하는건가요
Runbbok이 운영 매뉴얼이기 때문이 매뉴얼이라고 볼 수 있는 형태가 좋을 듯 한데, 보통 어떤 포맷으로 작성하는지 찾아 보세요.

https://www.google.com/search?q=runbbok+template&oq=runbbok+template&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQABgNGIAEMgkIAhAAGA0YgAQyCQgDEAAYDRiABDIJCAQQABgNGIAEMgkIBRAAGA0YgAQyCQgGEAAYDRiABDIJCAcQABgNGIAEMgkICBAAGA0YgAQyCQgJEAAYDRiABDIJCAoQABgNGIAEMggICxAAGBYYHjIICAwQABgWGB4yCAgNEAAYFhgeMggIDhAAGBYYHtIBCDQ3OTVqMGoxqAIAsAIA&client=ms-android-samsung-ss&sourceid=chrome-mobile&ie=UTF-8

Chatgpt사용하시니까 도움을 받으세요. Chatgpt가 잘하는 작업 종류잖아요.
...