diff --git a/.github/actions/install-cargo-deny/action.yml b/.github/actions/install-cargo-deny/action.yml new file mode 100644 index 000000000..7a26c016d --- /dev/null +++ b/.github/actions/install-cargo-deny/action.yml @@ -0,0 +1,10 @@ +name: Install cargo-deny +description: cargo-denyをインストールする。 + +runs: + using: composite + steps: + - name: Install cargo-binstall + uses: taiki-e/install-action@cargo-binstall + - name: Install cargo-deny + run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 000000000..b6e0be57f --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,24 @@ +# 依存ライブラリを監査する。 +# +# RustSec Advisory Databaseに登録された、あるいは単にヤンクされたクレートを検出する。 +# 検出されるものは脆弱性(`vulnerability`)のみとは限らない。 +# 依存ライブラリが単に"unmaintained"とされたりヤンクされたりしても反応する。 + +name: audit + +# データベースへの登録とクレートのヤンクはこちらの依存ライブラリの編集と関係なく起きるため、`push` +# と`pull_request`はトリガーにしない。 +on: + workflow_dispatch: + schedule: + - cron: '0 15 * * *' + +jobs: + audit: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Install cargo-deny + uses: ./.github/actions/install-cargo-deny + - name: cargo-deny + run: cargo deny --all-features check -s advisories diff --git a/.github/workflows/cargo-deny.yml b/.github/workflows/cargo-deny.yml deleted file mode 100644 index a3601b28d..000000000 --- a/.github/workflows/cargo-deny.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: cargo-deny -on: - push: - branches: - - main -jobs: - cargo-deny: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Install cargo-binstall - uses: taiki-e/install-action@cargo-binstall - - name: Install cargo-deny - run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug - - name: cargo-deny - run: cargo deny --all-features check diff --git a/.github/workflows/licenses.yml b/.github/workflows/licenses.yml new file mode 100644 index 000000000..556e0246c --- /dev/null +++ b/.github/workflows/licenses.yml @@ -0,0 +1,22 @@ +# 依存ライブラリのライセンスを確認する。 +# +# `advisories`以外についてcargo-denyを実行する。 + +name: licenses + +# 外部からの貢献者の負担を減らすため、PR時点では不適合になることを許容する。その代わりmainブランチで +# は毎回本ワークフローを実行する。 +on: + push: + branches: + - main + +jobs: + licenses: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Install cargo-deny + uses: ./.github/actions/install-cargo-deny + - name: cargo-deny + run: cargo deny --all-features check -s bans licenses sources