Danger(GitHub Actions)

Windows 11でDangerをGitHub Actionsで動かしてみるテスト
※ 以前Windows 10環境で軽く試してOKだったのに、Windows 11の別環境でもう一度確認したらサクッと再現できなかったので再編集

・danger
https://danger.systems/guides/getting_started.html

Rubyをインストール

とりあえずwithout Devkitの最新を持ってくる(ここでは3.3.5-1)
https://rubyinstaller.org/downloads

インストール後自動起動させるか、コンソールでridk installを実行(とりあえず3を選択
以下が出たら、手動でMSYS2インストール

...msys2-x86_64-20221028.exe
Installation failed: 404 Not Found
MSYS2
Software Distribution and Building Platform for Windows

gemfile生成

対象のプロジェクトのルートフォルダをカレントにする
以下を実行して、Gemfileが生成されたら編集

ruby -v
bundle init
# frozen_string_literal: true
source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "danger"

Dangerfile生成

以下を実行して、表示される内容を見ながら適当にEnter押してDangerfileを生成
とりあえずテスト用に↓のDangerfileのサンプルの内容に置き換える

bundle install
bundle exec danger init
# Sometimes it's a README fix, or something like that - which isn't relevant for
# including in a project's CHANGELOG for example
declared_trivial = github.pr_title.include? "#trivial"

# メッセージをプルリクのコメントに表示
message "Test Danger!"

warn("プルリクの変更箇所が多すぎるます。可能なら分割を検討してください。") if git.lines_of_code > 10

Gemfile.lockの確認

↓みたいにGithubで動かすOS(ubuntu)の設定がされてなかったら以下を実行

PLATFORMS
  x64-mingw-ucrt
bundle lock --add-platform x86_64-linux

Githubの設定

Actionsタブを押して、上の方にある set up a workflow yourself を実行して.yamlを追加
ここではdanger.ymlとします
とりあえず以下をコピペしてcommit

name: Ruby Danger

on:
  pull_request:

jobs:
  build:
    strategy:
      matrix:
        os:
          - ubuntu-latest
        ruby-version:
          - "3.3"
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4
      - name: setup ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby-version }}
          bundler-cache: true

      - name: Run Danger
        env:
          DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          bundle exec danger --version
          bundle exec danger
          

・DANGER_GITHUB_API_TOKENで指定したGITHUB_TOKENをプロジェクトの設定で登録

Settings – Secrets and variables – Actions – Secrets

GITHUB_TOKENで指定した場合は不要
他の名前にしたらアクセストークンをその名前で登録
・とりあえず試すため権限の設定をプロジェクトの設定からする(初期設定だと403エラーになる)
Settings – Action – General で「Allow xxx. and select non-xxx, actions and reusable workfows」を選択して下の2にチェック してSave
Workflow permissionsでRead and write permissionsを選択して下のチェックしてSave

・適当なブランチ作って、README.mdに10行以上入力してプルリクを出してみて、ただしくGithub Actionsが動作したらok