chore: add CI/CD tooling and project configuration
- Add commit-message-generator skill for standardized commit messages - Add buildspec.yml for CodeBuild Docker image build process - Add build-artifact.sh script for creating deployment packages - Add .gitignore to exclude zip files from version control
This commit is contained in:
parent
5e9c27cbf7
commit
b9d4623d63
4 changed files with 92 additions and 0 deletions
32
.github/skills/commit-message-generator/SKILL.md
vendored
Normal file
32
.github/skills/commit-message-generator/SKILL.md
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
name: commit-message-generator
|
||||
description: Generate appropriate commit messages based on Git diffs
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
- This Skill retrieves Git diffs and suggests meaningful commit messages
|
||||
- Message format should follow Conventional Commits
|
||||
- Commit messages should be in English
|
||||
- **Never perform Git commit or Git push**
|
||||
|
||||
## Steps
|
||||
1. Run `git status` to check modified files
|
||||
2. Retrieve diffs with `git diff` or `git diff --cached`
|
||||
3. Analyze the diff content and determine if changes should be split into multiple commits
|
||||
4. For each logical group of changes:
|
||||
- List the target files
|
||||
- Generate a message in English compliant with Conventional Commits
|
||||
- Suggest the command: `git add <files> && git commit -m "<message>"`
|
||||
5. If changes are extensive and should be split, provide:
|
||||
- Rationale for the split
|
||||
- Multiple commit suggestions with their respective target files and messages
|
||||
|
||||
## Commit Splitting Guidelines
|
||||
- Split commits when changes span multiple logical concerns (e.g., feature + refactoring)
|
||||
- Group related files that serve the same purpose
|
||||
- Keep each commit focused on a single, atomic change
|
||||
|
||||
## Notes
|
||||
- **This Skill must never execute `git commit` or `git push`**
|
||||
- Only suggest commands; execution is entirely at user's discretion
|
||||
- Users must explicitly perform commits and pushes themselves
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
*.zip
|
||||
20
ci/buildspec.yml
Normal file
20
ci/buildspec.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
version: 0.2
|
||||
phases:
|
||||
pre_build:
|
||||
commands:
|
||||
- echo Logging in to Amazon ECR...
|
||||
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $ECR_REPOSITORY_URI
|
||||
- IMAGE_TAG=$(date +%s)
|
||||
- echo "Image tag will be ${IMAGE_TAG}"
|
||||
build:
|
||||
commands:
|
||||
- echo Build started on `date`
|
||||
- echo Building Docker image for ARM64/Lambda...
|
||||
- docker build --platform linux/arm64 -f docker/Dockerfile -t $ECR_REPOSITORY_URI:$IMAGE_TAG -t $ECR_REPOSITORY_URI:latest .
|
||||
post_build:
|
||||
commands:
|
||||
- echo Build completed on `date`
|
||||
- echo Pushing Docker images...
|
||||
- docker push $ECR_REPOSITORY_URI:$IMAGE_TAG
|
||||
- docker push $ECR_REPOSITORY_URI:latest
|
||||
- echo "Image pushed with tags ${IMAGE_TAG} and latest"
|
||||
39
scripts/build-artifact.sh
Executable file
39
scripts/build-artifact.sh
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
#!/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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue