File tree Expand file tree Collapse file tree
.github/actions/aws-cloudfront-invalidation Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : CloudFront Invalidation
2+ description : Creates CloudFront invalidation to clear cache for updated content
3+
4+ inputs :
5+ aws_access_key :
6+ description : AWS access key ID
7+ required : true
8+ aws_secret_key :
9+ description : AWS secret access key
10+ required : true
11+ aws_region :
12+ description : AWS region (e.g. us-east-1)
13+ required : true
14+ distribution_id :
15+ description : CloudFront distribution ID
16+ required : true
17+ paths :
18+ description : Paths to invalidate (space-separated, e.g. "/* /index.html")
19+ required : false
20+ default : " /*"
21+ caller_reference :
22+ description : Unique reference for this invalidation (auto-generated if not provided)
23+ required : false
24+ default : " "
25+
26+ runs :
27+ using : composite
28+ steps :
29+ - name : Configure AWS credentials
30+ uses : aws-actions/configure-aws-credentials@v4
31+ with :
32+ aws-access-key-id : ${{ inputs.aws_access_key }}
33+ aws-secret-access-key : ${{ inputs.aws_secret_key }}
34+ aws-region : ${{ inputs.aws_region }}
35+
36+ - name : Create CloudFront invalidation
37+ shell : bash
38+ run : |
39+ if [ -z "${{ inputs.caller_reference }}" ]; then
40+ CALLER_REF="github-actions-$(date +%s)-${{ github.run_id }}"
41+ else
42+ CALLER_REF="${{ inputs.caller_reference }}"
43+ fi
44+
45+ aws cloudfront create-invalidation \
46+ --distribution-id ${{ inputs.distribution_id }} \
47+ --paths ${{ inputs.paths }} \
48+ --caller-reference "${CALLER_REF}" \
49+ --no-cli-pager
50+
51+ echo "✅ CloudFront invalidation created successfully!"
Original file line number Diff line number Diff line change 1+ # 🧬 CloudFront Invalidation · GitHub Composite Action
2+
3+ This composite GitHub Action creates CloudFront invalidations to clear cache for updated content.
4+
5+ ## ✅ Features
6+ - Uses AWS CLI to create CloudFront invalidations
7+ - Supports custom paths or wildcard invalidation
8+ - Auto-generates unique caller reference
9+ - Simple and fast cache clearing for static sites
10+
11+ ## 🔧 Usage Example
12+ ``` yaml
13+ name : Deploy Static Site
14+
15+ on :
16+ push :
17+ branches : [main]
18+
19+ jobs :
20+ deploy :
21+ runs-on : ubuntu-latest
22+ steps :
23+ - name : Deploy to S3
24+ # ... your S3 sync step ...
25+
26+ - name : Invalidate CloudFront
27+ uses : " Mad-Pixels/github-workflows/.github/actions/aws-cloudfront-invalidation@main"
28+ with :
29+ aws_access_key : ${{ secrets.AWS_ACCESS_KEY_ID }}
30+ aws_secret_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
31+ aws_region : " us-east-1"
32+ distribution_id : ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }}
33+ paths : " /*"
34+ ` ` `
35+
36+ ## 📥 Inputs
37+ | **Name** | **Required** | **Description** |
38+ |-------------------------|--------------|---------------------------------------------------|
39+ | ` aws_access_key_id` | ✅ Yes | AWS access key ID |
40+ | `aws_secret_access_key` | ✅ Yes | AWS secret access key |
41+ | `aws_region` | ✅ Yes | AWS region (e.g. us-east-1) |
42+ | `distribution_id` | ✅ Yes | CloudFront distribution ID |
43+ | `paths` | ❌ No | Paths to invalidate (default : " /*" ) |
44+ | `caller_reference` | ❌ No | Unique reference (auto-generated if not provided) |
You can’t perform that action at this time.
0 commit comments