1- name : AWS Terraform
1+ name : Sync Directory to S3
22
33on :
44 workflow_call :
55 inputs :
6- artifacts :
6+ source_dir :
7+ type : string
78 required : true
9+ bucket_name :
810 type : string
9- description : " Artifacts name"
10- actions_verions :
1111 required : true
12+ bucket_prefix :
1213 type : string
13- description : " Ci-action image version (0.0.1)"
14- exclude :
1514 required : false
16- type : string
1715 default : " "
18- description : " Exclude files: '*.tmp,*.log'"
19- working_directory :
20- required : false
21- type : string
22- default : " terraform"
23- description : " Terraform source directory"
24-
2516 secrets :
26- AWS_ACCESS_KEY_ID :
17+ aws_access_key_id :
2718 required : true
28- AWS_SECRET_ACCESS_KEY :
19+ aws_secret_access_key :
2920 required : true
30- AWS_SESSION_TOKEN :
31- required : false
32-
33- BUCKET_DESTINATION :
21+ aws_region :
3422 required : true
35- description : " { backet_name }/{ path }"
3623
3724jobs :
38- terraform :
39- runs-on : ubuntu-24.04
40-
25+ sync :
26+ runs-on : ubuntu-latest
27+ defaults :
28+ run :
29+ shell : bash
30+
4131 steps :
42- - name : Download artifacts
43- uses : actions/download-artifact@v4
32+ - name : Checkout repository
33+ uses : actions/checkout@v3
34+
35+ - name : Configure AWS credentials
36+ uses : aws-actions/configure-aws-credentials@v2
4437 with :
45- name : ${{ inputs.artifacts }}
46- path : dist_files
38+ aws-access-key-id : ${{ secrets.aws_access_key_id }}
39+ aws-secret-access-key : ${{ secrets.aws_secret_access_key }}
40+ aws-region : ${{ secrets.aws_region }}
4741
48- - name : Invoke Cli
42+ - name : Sync directory to S3
4943 run : |
50- docker run \
51- -v $(pwd):/app \
52- -e AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \
53- -e AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \
54- ${AWS_SESSION_TOKEN:+-e AWS_SESSION_TOKEN=${{ secrets.AWS_SESSION_TOKEN }}} \
55- -e ACTION_WORKING_DIR=/app/${{ inputs.working_directory }} \
56- -e ACTION_AWS_CMD=s3_sync \
57- -e ACTION_AWS_S3_DESTINATION=s3://${{ secrets.BUCKET_DESTINATION }} \
58- -e ACTION_AWS_S3_DELETE=true \
59- -e ACTION_AWS_S3_EXCLUDE=${{ inputs.exclude }} \
60- madpixels/action-aws:${{ inputs.actions_verions }}_aws2.22.26
44+ DEST="s3://${{ inputs.bucket_name }}/${{ inputs.bucket_prefix }}"
45+ aws s3 sync "${{ inputs.source_dir }}" "$DEST" --delete
0 commit comments