From 5a26db60b2780950e500ffdb2b4b304957c44adb Mon Sep 17 00:00:00 2001 From: ok-nick Date: Thu, 3 Aug 2023 11:25:22 -0400 Subject: [PATCH] feat: binary caching --- README.md | 5 +++-- action.yml | 22 +++++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 84c7fed..78d171c 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ GitHub action to install and run [aftman](https://github.com/LPGhatguy/aftman); a toolchain manager. ## Usage -This is the most common case and automatically provides all the parameters using the latest released version of `aftman`. +Use the latest released version of `aftman` with default parameters: ```yaml steps: - uses: ok-nick/setup-aftman@v0.3.0 @@ -23,7 +23,8 @@ steps: - uses: ok-nick/setup-aftman@v0.3.0 with: version: v1.0.0 # name of git tag in aftman (uses latest by default) - path: some_directory/my_project # path to project directory containing `aftman.toml` + path: some_dir/my_project # path to project directory containing `aftman.toml` (uses current directory by default) + cache: true # whether or not to enable binary caching between runs (true by default) token: ${{ github.token }} # GitHub token to bypass rate limit (passed by default) ``` diff --git a/action.yml b/action.yml index 25bb108..a1ed8ee 100644 --- a/action.yml +++ b/action.yml @@ -4,12 +4,16 @@ author: ok-nick inputs: version: - description: "`aftman` Git tag (usually in the form vx.x.x)" + description: "`aftman` git tag (usually in the form vx.x.x)" required: false path: description: "Path to the `aftman.toml` directory" default: "." required: false + cache: + description: "Whether or not to enable caching" + default: "true" + required: false token: description: "Github token via `github.token`" default: "${{ github.token }}" @@ -27,9 +31,9 @@ runs: esac gh release download ${{ inputs.version }} --repo LPGhatguy/aftman --pattern $pattern - shell: bash env: GITHUB_TOKEN: ${{ inputs.token }} + shell: bash - name: Install aftman run: | @@ -49,21 +53,29 @@ runs: - name: Set environment variable if: runner.os == 'Windows' - run: echo "$HOME/.aftman/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + run: echo "~/.aftman/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append shell: powershell - name: Set environment variable if: runner.os != 'Windows' - run: echo "$HOME/.aftman/bin" >> $GITHUB_PATH + run: echo "~/.aftman/bin" >> $GITHUB_PATH shell: bash - name: Create auth file run: | - cat > $HOME/.aftman/auth.toml << EOF + cat > ~/.aftman/auth.toml << EOF github = "${{ inputs.token }}" EOF shell: bash + - name: Cache binaries + if: ${{ inputs.cache == 'true' }} + uses: actions/cache@v3 + with: + path: ~/.aftman/bin + key: ${{ runner.os }}-aftman + shell: bash + - name: Install tools run: | cd ${{ inputs.path }}