Gradle 또는 Android 프로젝트의 GitHub 작업은 어떻게 설정합니까?

안녕, 인간!
이 강좌는 다음과 같은 경우에 적용됩니다.
  • ✅ 당신은 Gradle로 구축된 안드로이드, Kotlin 또는 Java 프로젝트가 있습니다
  • ✅ 컴파일 단위 테스트
  • ❌ 서버에서 테스트를 실행하는 연속 통합 시스템 설정이 없습니다
  • 단원 테스트가 서버 구축에서 실행되는 것을 확보하는 것은 팀과 테스트 문화를 구축하는 관건이다. 업무 중이든 개원 프로젝트에서든.
    이미 알고 계셨을 수도 있고 Jenkins 또는 Travis 또는 CircleCi 을 설정할 수 있다고 알려 주셨을 수도 있습니다.하지만 어떤 것을 선택해야 할지, 어떻게 설정해야 할지는 말할 것도 없다.
    오늘부터 GitHub Actions와 Gradle을 사용하여 파이프라인을 구축할 수 있다는 것을 믿게 하는 것이 목표입니다.

    내 워크플로우

  • Android 또는 Gradle 항목 열기
  • 이 내용
  • 을 사용하여 .github/workflows/runOnGitHub.yml라는 파일을 만듭니다.

    • 요청 제출 및 작성

    조금 지나면 보실 수 있을 거예요:



    GitHub 작업 실패


    이것이 바로 진보: 아직 실행되기 전에


    다음은 링크"Details"에 따라 무슨 일이 일어났는지 보기


    작업 정의 /gradlew runOnGitHub


    다음은 Details



    Welcome to Gradle 6.6.1!
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Task 'runOnGitHub' not found in root project '$YOUR_PROJECT'.
    
    BUILD FAILED in 1m 31s
    

    이것은 매우 일리가 있다. 우리는 아직 Gradle 임무runOnGitHub를 정의하지 않았다


    다음:


    • 루트 파일 열기build.gradle.kts 또는 build.gradle 파일 열기
    • 다음과 같이 Gradle 작업runOnGitHub을 등록합니다.


    tasks.register("runOnGitHub") { // 1
        dependsOn(":app:lint", ":app:testDebugUnitTest")  // 2 ==> CUSTOMIZE THIS LINE
        group = "custom"      // 3
        description = "$ ./gradlew runOnGitHub # runs on GitHub Action" //3
    }
    

    3단계


    1. runOnGitHub
    2. 라는 새 작업을 등록했습니다.
    3. runngithub 이전에 어떤 작업을 수행해야 하는지 dependsOn() 를 통해 정의할 수 있습니다.이 예에서, 우리는 응용 프로그램 모듈에서linter와 단원 테스트를 실행합니다.이것은 관건적인 단계이며 각 항목에 달려 있다.따라서 반드시 당신의 필요에 따라 맞춤형 제작을 해야 합니다.
    4. 실행 시 표시되는 내용 기록./gradlew tasks

    GitHub로 밀어서 작업 통과


    작업 정의 후:



    • 로컬에서 작업./gradlew runOnGitHub을 실행하고 원하는 작업을 수행하는지 확인합니다.
    • 팁: 실행./gradlew --dry-run runOnGitHub을 통해 시간을 절약하고 어떤 작업이 실제 실행되지 않은 상황에서 실행되는지 신속하게 확인합니다.
    • GitHub로 밀어넣기
    • GitHub의 Actions 탭을 엽니다. 행운이라면 시간이 지나면 보실 수 있습니다.


    • 경축


    제출 범주:


    Maintainer Must-Haves


    추가 리소스/정보


    자신의 Gradle 작업 만들기에 대한 자세한 내용은 https://guides.gradle.org/writing-gradle-tasks/의 부드러운 강좌를 참조하십시오


    GitHub 작업에 대한 문서 읽기


    GitHub Actions Documentation


    Gradle 명령 작업에 대한 문서 읽기




    에스카토스 / gradle 명령 동작


    Gradle 명령 Github 작업 수행




    데이터 경로 설명 파일

    GitHub 작업 흐름에서 Gradle 명령 실행


    이 GitHub 작업은 GitHub 작업이 지원하는 모든 플랫폼에서 임의의 Gradle 명령을 실행하는 데 사용됩니다


    관련Gradle Plugin에 관심이 있을 수 있습니다. GitHub 운영 환경을 쉽게 구축하고 Gradle 구축 스캔을 표시할 수 있습니다


    활용단어참조


    다음 작업 흐름은 ubuntu,macos, 윈도우즈 저장소에 있는 패키지로 실행됩니다./gradlew build.유일한 선결 조건은 Java를 설치하는 것입니다. actions/setup-java 작업을 사용하여 구축을 실행하는 데 필요한 버전을 정의할 수 있습니다



    이름: PRS에서 Gradle
    실행
    pull\u 요청 열기
    작업
    그라데이션
    전략
    행렬:
    운영체제: ubuntu 최신, 마코스 최신, 윈도우즈 최신
    실행: ${matrix.os}
    단계:
    - 작업 사용/checkout@v2
    - 액션/설정 사용 -java@v1
    지원:
    java 버전 11
    - eskatos/gradle 명령을 사용하여 -action@v1
    지원:
    매개변수:구성

    Gradle 매개변수


    arguments.


    개인 이야기


    GitHub 작업 게시 라이브러리 사용


    GitHub 작업을 사용하여 더 복잡한 워크플로우 라이브러리를 배포한 적이 있습니다


    관심 있으시면 여기를 보세요:


    https://github.com/jmfayard/refreshVersions/tree/master/.github/workflows


    https://github.com/LouisCAD/Splitties/tree/main/.github/workflows


    하지만 복잡한 임시 작업 흐름을 논의하는 것과 달리 모든 Gradle과 Android 프로젝트가 GitHub Action과 Gradle과 지속적으로 통합되는 첫걸음을 내딛는 데 도움이 될 것이라고 생각합니다


    Yaml 파일 또는 코드 링크


    내 작업 흐름의 장점은 매우 통용된다는 것이다


    나는 두 개의 Pull 요청에서 나의 업무 흐름을 제출했는데, 하나는 친구의 프로젝트이고, 다른 하나는 DEV.to의 안드로이드 응용 프로그램



    🏗 Gradle을 사용하여 GitHub 작업을 설정하여 셀 테스트를 실행#2 #100






    jmfayard
    발표 날짜



    이것은 어떤 유형의 홍보입니까?(해당 항목 모두 선택)


    • [] 재구성
    • [x] 피쳐
    • [] 오류 수정
    • [] 파일 업데이트

    묘사


    Gradle의 GitHub 작업, 이 Android 프로젝트를 실행하는 단위 테스트


    관련 어음과 서류


    GitHub 작업 hackaton on DEV



    화면 캡처/녹화(UI 변경이 있는 경우)


    https://github.com/jmfayard/DEV-Android/actions?query=workflow%3A%22Android+unit+tests%22



    테스트 실패 시 더 잘 보고할 수 있도록 스캐너 플러그인을 추가했습니다


    https://scans.gradle.com/s/2tzis4ikslecg/tests



    [선택 사항] gif가 이 PR을 가장 잘 묘사하거나 느낌을 주는 것은 무엇입니까?




    View on GitHub



    🏗 GitHub 작업/gradlew runOnGitHub #12






    jmfayard
    발표 날짜



    병합하면 GitHub 작업이 설치됩니다. 이 작업은 pull 요청마다 실행됩니다./gradlew runOnGitHub



    View on GitHub


    pull 요청을 보신다면, 테스트가 실패했을 때 더 잘 보고할 수 있도록 Gradle 구축 스캔을 설정하는 것입니다.나는 이미 여기에 썼다.



    당신의 테스트 피라미드는 거꾸로 놓았습니까?


    내가 안드로이드 응용 프로그램을 개발할 때 겪은 문제 중 하나는 단지 매우 적은 단원 테스트


    만약에 안드로이드 프로젝트가 있다면 기억해야 할 것은 나의 작업 흐름은 GitHub에서 단원 테스트를 실행할 수 있지만 통합 테스트/자동화 GUI 테스트(Android instrumentation 테스트라고도 함)는 허용하지 않는다는 것이다


    충분한 이유가 있다


    단원 테스트는 빠르고 작성하기 쉬우며 실패할 때 오류를 더욱 빨리 발견하고 복구합니다


    이것이 바로 추천 전략이 테스트 피라미드가 있는 이유입니다. 그 중에서 중점은 빠르고 간단한 단원 테스트를 많이 작성하는 것입니다.



    불행하게도 안드로이드 세계에서 흔히 볼 수 있는 반모드가 있어 단원 테스트에 충분한 중시를 하지 못했다.테스트 피라미드는 보기에 이렇다. 이집트의 피라미드처럼 길지 않을 것이다.



    왜 이게 반모드인지 이해하려면 구글 테스트 블로그를 참조하세요:


    Just Say No to More End-to-End Tests


    이제 더 많은 단원 테스트를 작성하는 것을 중시하고 싶다면 GitHub 작업에 이 기초 구조를 설치하는 것이 좋은 첫걸음이다


    YAML은 엉망진창인 프로그래밍 언어이다


    지금까지 나의 가장 큰 좌절은 YAML 프로필 때문이다


    내가 여기서 인용부호를 사용하는 것은 이곳의 프로필이 거짓말이라고 생각하기 때문이다


    봐라, 우리는 컴퓨터로 하여금 평범하지 않은 일을 하게 하고 싶다


    우리가 하고 있는 것은 프로그래밍 스크립트를 작성하는 것이다


    여기서 일어난 일은 GitHub의 어떤 사람이 방금 무서운 프로그래밍 언어를 작성해서 YAML로 위장한 것이다.수백 가지 일이 잘못될 수 있습니다. IDE는 당신에게 아무런 도움도 주지 않습니다. 이것은 매우 큰 시간 낭비입니다


    더 좋은 선택은 실제 프로그래밍 언어를 사용하는 것이다


    맹타가 아니다


    만약 IDE가 코드를 작성할 때처럼 당신에게 도움을 줄 수 있다면 얼마나 간단해질지 상상해 보세요


    코드의 구성은 GitHub 작업의 대체품이므로 상상할 필요가 없습니다. 예를 들어 in TeamCity from JetBrains



    나는 GitHub가 우리에게 이런 서비스를 제공할 수 있기를 바란다


    피드백


    GitHub Action+Gradle을 사용하여 첫 번째 CI를 설정하면 좋겠습니다


    파일 복사.github/workflows/runOnGitHub.yml,Gradle 작업runOnGitHub을 정의하고pull 요청을 작성합니다


    만약 이것이 당신에게 효과가 있다면 평론을 남겨 주십시오.나는 보통 잘못된 소식만 듣는다:)

    좋은 웹페이지 즐겨찾기