From 05f31cda391025aa48a6c44ddffc5346e2f64331 Mon Sep 17 00:00:00 2001 From: Mateo Florido Date: Tue, 23 Apr 2024 17:04:02 -0500 Subject: [PATCH 1/3] Use caching step --- .github/workflows/build-charm.yaml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-charm.yaml b/.github/workflows/build-charm.yaml index 8caf7a53..638022bf 100644 --- a/.github/workflows/build-charm.yaml +++ b/.github/workflows/build-charm.yaml @@ -22,20 +22,35 @@ jobs: steps: - uses: actions/checkout@v4.1.1 - uses: canonical/setup-lxd@v0.1.1 + + - name: Get hash of the source + run: echo "SRC_HASH=${{ hashFiles('**/charms/**/*.yaml', '**/charms/**/*.py, **/charms/**/requirements.txt') }}" >> $GITHUB_ENV + - name: Extract charm name working-directory: ${{ inputs.working-directory }} run: echo "CHARM_NAME=$([ -f charmcraft.yaml ] && yq '.name' charmcraft.yaml || echo UNKNOWN)" >> $GITHUB_ENV + + - name: Cache charm output + id: cache-charm + uses: actions/cache@v4 + with: + path: ${{ inputs.working-directory }}/packed/ + key: ${{ runner.os}}-${{ env.CHARM_NAME }}-charm-${{ env.SRC_HASH }} + - name: Pack charm - if: ${{ env.CHARM_NAME != 'UNKNOWN' && !cancelled() }} + if: ${{ env.CHARM_NAME != 'UNKNOWN' && !cancelled() && steps.cache-charm.outputs.cache-hit != 'true' }} working-directory: ${{ inputs.working-directory }}/${{ matrix.path }} run: | sudo snap install charmcraft --classic --channel latest/stable charmcraft pack -v - echo "CHARM_FILE=$(ls ${{env.CHARM_NAME}}_*.charm)" >> $GITHUB_ENV + mkdir -p packed + mv *.charm packed/ + echo "CHARM_FILE=$(ls packed/${{env.CHARM_NAME}}_*.charm)" >> $GITHUB_ENV + - name: Upload charm artifact if: ${{ env.CHARM_FILE != '' && !cancelled() }} uses: actions/upload-artifact@v4 with: name: ${{ env.CHARM_NAME }}-charm - path: ${{ inputs.working-directory }}/${{ env.CHARM_FILE }} + path: ${{ inputs.working-directory }}/packed/${{ env.CHARM_FILE }} if-no-files-found: error From c6bd307011336925c75c365f36623fbc8a24f97f Mon Sep 17 00:00:00 2001 From: Mateo Florido Date: Tue, 23 Apr 2024 17:09:36 -0500 Subject: [PATCH 2/3] Fix CHARM_PATH --- .github/workflows/build-charm.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-charm.yaml b/.github/workflows/build-charm.yaml index 638022bf..1231c72b 100644 --- a/.github/workflows/build-charm.yaml +++ b/.github/workflows/build-charm.yaml @@ -34,9 +34,15 @@ jobs: id: cache-charm uses: actions/cache@v4 with: - path: ${{ inputs.working-directory }}/packed/ + path: ${{ inputs.working-directory }}packed/ key: ${{ runner.os}}-${{ env.CHARM_NAME }}-charm-${{ env.SRC_HASH }} + - name: Use cached charm + if: ${{ env.CHARM_NAME != 'UNKNOWN' && steps.cache-charm.outputs.cache-hit == 'true' }} + working-directory: ${{ inputs.working-directory }}/${{ matrix.path }} + run: | + echo "CHARM_FILE=$(ls packed/${{env.CHARM_NAME}}_*.charm)" >> $GITHUB_ENV + - name: Pack charm if: ${{ env.CHARM_NAME != 'UNKNOWN' && !cancelled() && steps.cache-charm.outputs.cache-hit != 'true' }} working-directory: ${{ inputs.working-directory }}/${{ matrix.path }} @@ -52,5 +58,5 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ env.CHARM_NAME }}-charm - path: ${{ inputs.working-directory }}/packed/${{ env.CHARM_FILE }} + path: ${{ inputs.working-directory }}/${{ env.CHARM_FILE }} if-no-files-found: error From 3b7038a1702c1cebf1a812745364c73407234bd1 Mon Sep 17 00:00:00 2001 From: Mateo Florido Date: Wed, 24 Apr 2024 14:01:56 -0500 Subject: [PATCH 3/3] Pin Dependencies --- .github/workflows/build-charm.yaml | 2 +- charms/worker/k8s/requirements.txt | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-charm.yaml b/.github/workflows/build-charm.yaml index bb0a1080..655d2040 100644 --- a/.github/workflows/build-charm.yaml +++ b/.github/workflows/build-charm.yaml @@ -24,7 +24,7 @@ jobs: - uses: canonical/setup-lxd@v0.1.1 - name: Get hash of the source - run: echo "SRC_HASH=${{ hashFiles('**/charms/**/*.yaml', '**/charms/**/*.py, **/charms/**/requirements.txt') }}" >> $GITHUB_ENV + run: echo "SRC_HASH=${{ hashFiles('**/charms/**/*.yaml', '**/charms/**/*.py', '**/charms/**/requirements.txt') }}" >> $GITHUB_ENV - name: Extract charm name working-directory: ${{ inputs.working-directory }} diff --git a/charms/worker/k8s/requirements.txt b/charms/worker/k8s/requirements.txt index 9acee428..eb134dd4 100644 --- a/charms/worker/k8s/requirements.txt +++ b/charms/worker/k8s/requirements.txt @@ -1,7 +1,10 @@ -ops >= 2.2.0 -cosl == 0.0.8 -pydantic == 1.* -charm-lib-reconciler @ git+https://github.com/charmed-kubernetes/charm-lib-reconciler@main -charm-lib-contextual-status @ git+https://github.com/charmed-kubernetes/charm-lib-contextual-status@main -charm-lib-node-base @ git+https://github.com/charmed-kubernetes/layer-kubernetes-node-base@main#subdirectory=ops -charm-lib-interface-external-cloud-provider @ git+https://github.com/charmed-kubernetes/charm-lib-interface-external-cloud-provider@main +charm-lib-contextual-status @ git+https://github.com/charmed-kubernetes/charm-lib-contextual-status@255dd4a23defc16dcdac832306e5f460a0f1200c +charm-lib-interface-external-cloud-provider @ git+https://github.com/charmed-kubernetes/charm-lib-interface-external-cloud-provider@e1c5fc69e98100a7d43c0ad5a7969bba1ecbcd40 +charm-lib-node-base @ git+https://github.com/charmed-kubernetes/layer-kubernetes-node-base@9b212854e768f13c26cc907bed51444e97e51b50#subdirectory=ops +charm-lib-reconciler @ git+https://github.com/charmed-kubernetes/charm-lib-reconciler@f818cc30d1a22be43ffdfecf7fbd9c3fd2967502 +cosl==0.0.8 +ops==2.12.0 +pydantic==1.10.15 +PyYAML==6.0.1 +typing_extensions==4.11.0 +websocket-client==1.8.0