A simple approach for storing and delivering static content is to use an Amazon S3 bucket. Using S3 together with CloudFront has a number of advantages, including the option to use Origin Access Identity (OAI) to easily restrict access to your S3 content.
When developers want to update the static files, they just need to push the commit of changes, everything else leave for Gitlab pipeline job
General Flow: Gitlab pipeline job sync files to S3 -> S3 notification event triggers lambda function -> Lambda function creates invalidation request to cloudfront
before_script: - echo "Deploy CDN" deploy_cdn: stage: deploy timeout: 5m script: - aws s3 sync static/src s3://static-demo/src/ only: refs: - master changes: - static/src/**/* tags: - gitlab-runner