GitHub Actions에서 Build하고 GitHub Packages에서 공개한다.

타이틀 그대로인데, 간단한 일이었는데 하루 걸렸기 때문에.

전제


  • spring boot (은 그다지 상관 없음)
  • Gradle project

  • GitHub Packages에서 공개한다.



    우선 여기에서 시작하는 것이 좋다. 이것이 불가능하면 이후의 처리가 시작되지 않습니다.

    여기에 있다고 하면 그때까지이지만, 우선은 plugin을 추가한다.

    build.gradle
    plugins {
            id 'maven-publish'
    }
    

    다음에 이것을 추가한다.

    build.gradle
    publishing {
        repositories {
            maven {
                name = "GitHubPackages"
                # FIXME
                url = uri("https://maven.pkg.github.com/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            gpr(MavenPublication) {
                from(components.java)
            }
        }
    }
    

    덧붙여서 uri의 FQDN는 이번에는 maven repository이므로 maven.pkg.github.com 고정이다. 여기를 모르고 상당히 빠져 있었다. 계속 평범한 github.com으로 만들었습니다.
    그래서 여기서 주의이지만, 이 시점에서 로컬로 ./gradlew assemble publish 로 확인하는 것이 좋다. 이 때 gradle.properties에 다음을 추가하십시오.

    gradle.properties
    gpr.user=OWNER
    grr.key=PRIVATE_ACCESS_TOKEN
    

    OWNER는 괜찮다고 생각하지만, 액세스 토큰은 이하를 보고 작성하는 것.
    htps : // 에 lp. 기주 b. 코 m / 그럼 / 기테 b 미안해.
    권한은 다음이 있으면 된다.


    여기서 잘하면 해당 리포지토리의 패키지 부분에 이런 식으로 추가되어야합니다. 이것이 되어 있지 않으면 그 앞을 할 수 없다.


    GitHub Actions를 만듭니다.



    Actions→New workflow의 버튼으로 만들면 좋지만, 아마 무엇을 만들면 좋은지 모르겠다고 생각하기 때문에, 이하로 좋다. 결과적으로는 .github/workflows 부하에 yaml 형식으로 작성하게 된다.
    GitHub-flow 전제이므로, 트리거는 master에 대한 push, PR만 하고 있다.

    main.yml
    # This is a basic workflow to help you get started with Actions
    # FIXME
    name: CI
    
    # Controls when the action will run. Triggers the workflow on push or pull request
    # events but only for the master branch
    on:
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      publish:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@master
        - name: Publish library
          env:
            # FIXME
            USERNAME: OWNER
            TOKEN: ${{ secrets.GITHUB_TOKEN }}
          run: ./gradlew assemble publish 
    

    OWNER는 당연히 변경해야하기 때문에 놓아두고 GITHUB_TOKEN은 자동으로 만들어지므로 편리하다. 물론 위에서 언급 한 액세스 토큰을 사용할 수 있습니다.
    htps : // 에 lp. 기주 b. 코 m / 자 / 아 c 치온 s / 곤후 쿠 린 g - an d 마나 긴 g rkf ぉ ws / 어서
    이것을 하고 잘하면 github actions가 움직이기 시작한다.


    GitHub Actions가 위와 같이 완료되면 위에서 설명한 것처럼 패키지가 공개됩니다. 본래는 build cache의 설정등 제대로 하는 것이 좋지만.

    이 변의 workflow의 설정은 이 변에 있으므로, 필요에 따라서 읽으면 된다. (아이에게 읽지 않았다.)
    htps : // 에 lp. 기주 b. 코 m / 자 / 아 c 치온 s / 레후 렌세 / rkf

    groupid 등.



    여기는 gradle측의 설정이다. 이번은 다음과 같다. SNAPSHOT 운용 전제로 하고 있다.

    build.gradle
    group = 'com.example'
    version = '0.0.2-SNAPSHOT'
    

    이용측



    라이브러리를 사용할 때는 아마 확실히 확실히 인증 설정이 필요합니다. 그것은 아래의 참고 페이지의 설정과 같다고 생각하기 때문에 할애한다.

    참고 사이트



    매우 참고로 했다고 할까, 박했다고도 말한다.
    h tps:// 퀵했다. 작은 m/호리에 1024/있어 MS/베 2b5 그림 b768f36794C4f1
    이쪽이 제대로 해도 좋을지도 모른다. Java의 Ver 설정은 이쪽으로 쓰여 있다.
    htps : // 기주 b. 코 m / 아 c 치온 s / 세츠 p ゔ ご # 푸 b

    좋은 웹페이지 즐겨찾기