#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)" ARTIFACT_DIR="${ROOT_DIR}/artifacts" ZIP_PATH="${ARTIFACT_DIR}/blog-lambda-source.zip" echo "Building artifact for blog-lambda pipeline..." echo "Root directory: ${ROOT_DIR}" mkdir -p "${ARTIFACT_DIR}" # Create temporary directory for staging files tmpdir="$(mktemp -d)" trap 'rm -rf "${tmpdir}"' EXIT # Copy necessary files for CodeBuild echo "Copying source files..." cp -r "${ROOT_DIR}/cmd" "${tmpdir}/cmd" cp -r "${ROOT_DIR}/docker" "${tmpdir}/docker" cp -r "${ROOT_DIR}/ci" "${tmpdir}/ci" cp "${ROOT_DIR}/go.mod" "${tmpdir}/go.mod" cp "${ROOT_DIR}/go.sum" "${tmpdir}/go.sum" # Create the ZIP archive echo "Creating ZIP archive..." ( cd "${tmpdir}" zip -r "${ZIP_PATH}" . -x "*.git*" "*.DS_Store" ) # Display artifact info echo "" echo "✅ Artifact created successfully!" echo " Path: ${ZIP_PATH}" echo " Size: $(du -h "${ZIP_PATH}" | cut -f1)" echo "" echo "To upload to S3:" echo " aws s3 cp ${ZIP_PATH} s3://\${BUCKET_NAME}/blog-lambda-source.zip"