1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitHub ActionsでBuildしGitHub Packagesで公開する。

Last updated at Posted at 2020-04-01

タイトルそのままなのだが、簡単なことだったのに1日かかったので。

前提

  • 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はまあわかると思うが、アクセストークンは以下を見て作成すること。
https://help.github.com/ja/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line
権限は以下があれば良い。
スクリーンショット 2020-04-02 0.36.04.png

ここでうまくいけば、当該repositoryのpackageの箇所にこんな感じに追加されるはずである。これができていないとその先ができない。
スクリーンショット 2020-04-02 0.41.11.png

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は自動的に作られるので便利である。もちろん上述した、アクセストークンを使っても構わないが。
https://help.github.com/ja/actions/configuring-and-managing-workflows/authenticating-with-the-github_token
これを行なってうまくいけば、github actionsが動き出す。
スクリーンショット 2020-04-02 0.57.23.png

GitHub Actionsが上記の通り完了すれば上述したのと同様に、packagesが公開される。本来はbuild cacheの設定などちゃんとやった方がいいが。

この辺のworkflowの設定はこの辺にあるので、必要に応じて読めば良い。(碌に読んでない。)
https://help.github.com/ja/actions/reference/workflow-syntax-for-github-actions

groupidなど。

ここはgradle側の設定である。今回は以下の通りである。SNAPSHOT運用前提としている。

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

利用側

ライブラリの利用時には、多分きっといや間違いなく、認証設定が必要である。それは下の参考ページの設定と同じだと思うので割愛する。

参考サイト

とても参考にさせて頂いたというか、パクったとも言う。
https://qiita.com/Horie1024/items/be2b5eb768f36794c4f1
こっちの方がちゃんとしてていいかもしれない。JavaのVer設定とかはこっちに書いてある。
https://github.com/actions/setup-java#publishing-using-gradle

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?