Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

任意のパスをビルドキャッシュから除外する custom-cache-path を追加する #3

Merged
merged 3 commits into from
Dec 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,24 @@
# デフォルト: 'false'
display-dependency-updates: ''

# GitHub Actions が提供するビルドキャッシュを利用するかどうか
# GitHub Actions が提供するビルドキャッシュ (actions/cache) を利用するかどうか
# ビルドキャッシュを利用することでバージョンチェックの処理を高速化できる
# デフォルト: 'true'
use-cache: ''

# GitHub Actions が提供するビルドキャッシュ (actions/cache) に渡すパス
# キャッシュの除外設定に利用することを想定している
# デフォルト: 未使用
custom-cache-path: ''

# テストコマンドが成功したときにバージョンの更新をリポジトリに反映するかどうか
# バージョンのアップデートがあるかどうかをチェックしたいだけなら無効でよい
# デフォルト: 'false'
push-on-success: ''

# デバッグ用途に冗長モードを有効にするかどうか
# デフォルト: 'false'
verbose: ''
```

### 呼び出し側の設定例
Expand All @@ -66,9 +75,12 @@
with:
maven-test-command: "test -DfailIfNoTests=false -Dtest='!IntegrationTest'"
maven-settings-xml-path: "${{ github.workspace }}/settings.xml"
custom-cache-path: '!~/.m2/repository/com/subdomain'
push-on-success: 'true'
```

`custom-cache-path` は [actions/cache](https://github.com/actions/cache) に渡す `path` を記述します。`!` を使うことでキャッシュ対象から除外できます。この例では `~/.m2/repository/com/subdomain` 配下のディレクトリをすべてキャッシュしない設定になります。除外設定には [actions/toolkit/issues/713](https://github.com/actions/toolkit/issues/713#issuecomment-850321461) で報告されている課題があり、`~/.m2/repository/第1階層/第2階層` のように2階層にあわせて指定する必要があります。

リポジトリに push するには GITHUB_TOKEN や permissions といった認証情報を適切に設定する必要があります。

```yml
Expand Down
17 changes: 16 additions & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,28 @@ inputs:
description: 'whether cache or not for maven repository'
required: true
default: 'true'
custom-cache-path:
description: 'any (exclude) path patterns for actions/cache'
required: false
default: ''
push-on-success:
description: 'whether git push or not for the dependency version changes when the test succeeded'
required: true
default: 'false'
verbose:
description: 'whether enable verbose mode, use for debugging'
required: false
default: 'false'
runs:
using: "composite"
steps:
- name: Cache local Maven repository
if: ${{ inputs.use-cache == 'true' }}
uses: actions/cache@v2
with:
path: ~/.m2/repository
path: |
~/.m2/repository/*/*
${{ inputs.custom-cache-path }}
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
Expand All @@ -42,6 +52,11 @@ runs:
run: |
source ${{ github.action_path }}/functions.sh

if [[ "${{ inputs.verbose }}" == "true" ]]; then
echo "show the cached repository"
sh -c "ls -laR ~/.m2/; exit 0"
fi

if [[ -n "${{ inputs.maven-settings-xml-path }}" ]]; then
set_settings_xml "${{ inputs.maven-settings-xml-path }}"
fi
Expand Down