From 2ac59f41071b24980490b2ca0e47711d4a1aa289 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Mon, 23 Dec 2024 18:58:07 +0900 Subject: [PATCH] =?UTF-8?q?ci:=20cargo-deny=E3=81=AE`advisories`=E3=81=A0?= =?UTF-8?q?=E3=81=91cron=E3=81=A7=E3=81=AE=E5=AE=9F=E8=A1=8C=E3=81=AB?= =?UTF-8?q?=E3=81=99=E3=82=8B=20(#893)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `cargo-deny`ワークフローを`licenses`と`audit`に分離し、後者を毎日のcron 実行とする。 RustSecへの登録によって「何もしていないのにCIが落ちた」ケースが最近増え てきたため。 Co-authored-by: Hiroshiba --- .github/actions/install-cargo-deny/action.yml | 10 ++++++++ .github/workflows/audit.yml | 24 +++++++++++++++++++ .github/workflows/cargo-deny.yml | 16 ------------- .github/workflows/licenses.yml | 22 +++++++++++++++++ 4 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 .github/actions/install-cargo-deny/action.yml create mode 100644 .github/workflows/audit.yml delete mode 100644 .github/workflows/cargo-deny.yml create mode 100644 .github/workflows/licenses.yml 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