Skip to content

Commit 841df0e

Browse files
committed
Add support for selected paths to invalidate, documentation updates
1 parent 5e9529c commit 841df0e

File tree

2 files changed

+64
-9
lines changed

2 files changed

+64
-9
lines changed

README.md

+53-8
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,75 @@ Pipe to deploy to Amazon Cloudfront create-invalidation
77
Add the following snippet to the script section of your `bitbucket-pipelines.yml` file:
88

99
```yaml
10-
- pipe: rudijs/aws-cloudfront-create-invlidation:1.0.0
10+
- pipe: docker://rudijs/aws-cloudfront-create-invlidation:1.0.1
1111
variables:
1212
AWS_ACCESS_KEY_ID: "<string>"
1313
AWS_SECRET_ACCESS_KEY: "<string>"
1414
DISTRIBUTION_ID: "<string>"
15+
# PATHS: "<string> <string>" # Optional. Space separated one or more paths (ex: "/index.html /404.html"). Default is '/*' (everything)
1516
```
1617

1718
## Variables
1819

19-
| Variable | Usage |
20-
| -------------------------- | -------------------------- |
21-
| AWS_ACCESS_KEY_ID (\*) | AWS access key. |
22-
| AWS_SECRET_ACCESS_KEY (\*) | AWS secret key. |
23-
| DISTRIBUTION_ID (\*) | Cloudfront Distribution ID |
20+
| Variable | Usage |
21+
| -------------------------- | ----------------------------------- |
22+
| AWS_ACCESS_KEY_ID (\*) | AWS access key. |
23+
| AWS_SECRET_ACCESS_KEY (\*) | AWS secret key. |
24+
| DISTRIBUTION_ID (\*) | Cloudfront Distribution ID. |
25+
| PATHS | Cloudfront paths to be invalidated. |
2426

2527
_(\*) = required variable._
2628

27-
## Basic example:
29+
## Basic examples:
30+
31+
Invalidate entire cache:
2832

2933
```yaml
3034
script:
31-
- pipe: rudijs/aws-cloudfront-create-invlidation:1.0.0
35+
- pipe: docker://rudijs/aws-cloudfront-create-invlidation:1.0.1
3236
variables:
3337
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
3438
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
3539
DISTRIBUTION_ID: $DISTRIBUTION_ID
3640
```
41+
42+
Invalidate selected files:
43+
44+
```yaml
45+
script:
46+
- pipe: docker://rudijs/aws-cloudfront-create-invlidation:1.0.1
47+
variables:
48+
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
49+
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
50+
DISTRIBUTION_ID: $DISTRIBUTION_ID
51+
PATHS: $PATHS
52+
```
53+
54+
## Example building a GatsbyJS static site, deploy to S3, invalidate Cloudfront cache
55+
56+
```yaml
57+
image: node:10.15.3
58+
59+
pipelines:
60+
default:
61+
- step:
62+
name: Build Static Site
63+
deployment: production # can be test, staging or production
64+
script:
65+
- cd website
66+
- npm install
67+
- npm run build
68+
- pipe: atlassian/aws-s3-deploy:0.2.4
69+
variables:
70+
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
71+
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
72+
AWS_DEFAULT_REGION: "ap-southeast-1"
73+
S3_BUCKET: $S3_BUCKET
74+
LOCAL_PATH: "public"
75+
DELETE_FLAG: "true"
76+
- pipe: docker://rudijs/aws-cloudfront-create-invalidation:1.0.2
77+
variables:
78+
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
79+
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
80+
DISTRIBUTION_ID: $DISTRIBUTION_ID
81+
```

pipe/pipe.sh

+11-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
# AWS_ACCESS_KEY_ID
77
# AWS_SECRET_ACCESS_KEY
88
# DISTRIBUTION_ID
9+
# Optional
10+
# PATHS: "<string> <string>" # Optional. Space separated one or more paths. Default is '/*' (everything)
11+
912

1013
source "$(dirname "$0")/common.sh"
1114

@@ -14,9 +17,16 @@ AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:?'AWS_ACCESS_KEY_ID variable missing.'}
1417
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:?'AWS_SECRET_ACCESS_KEY variable missing.'}
1518
DISTRIBUTION_ID=${DISTRIBUTION_ID:?'DISTRIBUTION_ID variable missing.'}
1619

20+
export PATHS=${PATHS}
21+
1722
info "Starting Cloudfront create invalidation..."
1823

19-
run aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths '/*'
24+
if [ -z "$PATHS" ]
25+
then
26+
run aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths '/*'
27+
else
28+
run aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths ${PATHS}
29+
fi
2030

2131
if [[ "${status}" -eq 0 ]]; then
2232
success "Create Invalidation successful."

0 commit comments

Comments
 (0)