From 397693f0963c17d80232f29baa55bcd2bfe9934f Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Tue, 5 Sep 2023 14:10:22 +0700 Subject: [PATCH 1/5] ci(workflow): install Poetry using pipx --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 84a73c2..c244ef5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,7 +21,7 @@ jobs: python-version: 3.11 - name: Setup Poetry - uses: abatilo/actions-poetry@v2.3.0 + run: pipx install poetry - name: Install deps run: poetry install --with dev From 38f06aab4912f02285773e688b57074f234141bc Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Tue, 5 Sep 2023 14:16:49 +0700 Subject: [PATCH 2/5] ci(workflow): add step for caching Poetry installation --- .github/workflows/build.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c244ef5..e759543 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -20,6 +20,14 @@ jobs: with: python-version: 3.11 + - name: Cache Poetry + uses: actions/cache@v3.3.1 + with: + path: | + ~/.local/bin/poetry + ~/.local/pipx/venvs/poetry + key: poetry-${{ runner.os }}-${{ hashFiles('.github/workflows/build.yaml') }} + - name: Setup Poetry run: pipx install poetry From 512b2065fd8e003ca54707d2cafac22335a95794 Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Tue, 5 Sep 2023 14:33:27 +0700 Subject: [PATCH 3/5] ci(workflow): use the correct pipx packages path for caching --- .github/workflows/build.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e759543..e17a0ea 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -20,12 +20,19 @@ jobs: with: python-version: 3.11 + - name: Get pipx variables + id: pipx_vars + shell: bash + run: | + echo "bin_dir=$(pipx environment -v PIPX_BIN_DIR)" >> $GITHUB_OUTPUT + echo "local_venvs=$(pipx environment -v PIPX_LOCAL_VENVS)" >> $GITHUB_OUTPUT + - name: Cache Poetry uses: actions/cache@v3.3.1 with: path: | - ~/.local/bin/poetry - ~/.local/pipx/venvs/poetry + ${{ steps.pipx_vars.outputs.bin_dir }}/poetry* + ${{ steps.pipx_vars.outputs.local_venvs }}/poetry key: poetry-${{ runner.os }}-${{ hashFiles('.github/workflows/build.yaml') }} - name: Setup Poetry From acfdb38af36d98eeed85fd4abbfdeed8a6094522 Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Tue, 5 Sep 2023 15:11:39 +0700 Subject: [PATCH 4/5] ci(workflow): skip setup Poetry step if a cache is found --- .github/workflows/build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e17a0ea..1c8b290 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,6 +28,7 @@ jobs: echo "local_venvs=$(pipx environment -v PIPX_LOCAL_VENVS)" >> $GITHUB_OUTPUT - name: Cache Poetry + id: cache_poetry uses: actions/cache@v3.3.1 with: path: | @@ -36,6 +37,7 @@ jobs: key: poetry-${{ runner.os }}-${{ hashFiles('.github/workflows/build.yaml') }} - name: Setup Poetry + if: steps.cache_poetry.outputs.cache-hit != 'true' run: pipx install poetry - name: Install deps From 59b60ab6038932dcf3aba6852eadb4dc5bc62d19 Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Tue, 5 Sep 2023 15:24:51 +0700 Subject: [PATCH 5/5] ci(workflow): use pipx version as the Poetry cache key --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1c8b290..0cd9a33 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,6 +24,7 @@ jobs: id: pipx_vars shell: bash run: | + echo "version=$(pipx --version)" >> $GITHUB_OUTPUT echo "bin_dir=$(pipx environment -v PIPX_BIN_DIR)" >> $GITHUB_OUTPUT echo "local_venvs=$(pipx environment -v PIPX_LOCAL_VENVS)" >> $GITHUB_OUTPUT @@ -34,7 +35,7 @@ jobs: path: | ${{ steps.pipx_vars.outputs.bin_dir }}/poetry* ${{ steps.pipx_vars.outputs.local_venvs }}/poetry - key: poetry-${{ runner.os }}-${{ hashFiles('.github/workflows/build.yaml') }} + key: pipx-${{ steps.pipx_vars.outputs.version }}-poetry-${{ runner.os }} - name: Setup Poetry if: steps.cache_poetry.outputs.cache-hit != 'true'