From ba42de150060fb2f2164be71996289224c835e6f Mon Sep 17 00:00:00 2001 From: Vijaya Krishna Manne Date: Fri, 29 May 2026 14:23:38 -0400 Subject: [PATCH] Optimize workflow setup and cleanup for lower resource use --- .forgejo/workflows/deploy-cfn.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/deploy-cfn.yml b/.forgejo/workflows/deploy-cfn.yml index 8960f5f..2853b62 100644 --- a/.forgejo/workflows/deploy-cfn.yml +++ b/.forgejo/workflows/deploy-cfn.yml @@ -14,6 +14,7 @@ jobs: AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} AWS_DEFAULT_REGION: us-east-1 LOWER: ${{ secrets.LOWER }} + PIP_NO_CACHE_DIR: "1" steps: - name: Prepare source @@ -32,6 +33,14 @@ jobs: - name: Ensure AWS CLI run: | set -e + + # Fast path: aws may already be installed in user bin from a prior run. + if [ -x "$HOME/.local/bin/aws" ]; then + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + "$HOME/.local/bin/aws" --version + exit 0 + fi + if command -v aws >/dev/null 2>&1; then aws --version exit 0 @@ -40,6 +49,7 @@ jobs: # Try local AWS CLI v2 install (no root required). if command -v curl >/dev/null 2>&1 && command -v unzip >/dev/null 2>&1; then TMP_DIR="$(mktemp -d)" + trap 'rm -rf "${TMP_DIR}"' EXIT curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "${TMP_DIR}/awscliv2.zip" unzip -q "${TMP_DIR}/awscliv2.zip" -d "${TMP_DIR}" "${TMP_DIR}/aws/install" -i "$HOME/.aws-cli" -b "$HOME/.local/bin" || true @@ -52,7 +62,7 @@ jobs: # Fallback to pip user install. if command -v python3 >/dev/null 2>&1; then - python3 -m pip install --user --upgrade awscli + python3 -m pip install --user --upgrade --no-cache-dir awscli echo "$HOME/.local/bin" >> "$GITHUB_PATH" "$HOME/.local/bin/aws" --version exit 0 @@ -128,3 +138,9 @@ jobs: --stack-name hello-lambda-stack \ --template-file "${SRC_DIR}/infra/hello-lambda.yml" \ --capabilities CAPABILITY_NAMED_IAM + + - name: Cleanup workspace artifacts + if: always() + run: | + rm -rf _src + rm -rf "$HOME/.cache/pip" || true