Files
resume-manpage/.woodpecker/build.yml
2025-02-20 19:18:50 +06:00

87 lines
1.9 KiB
YAML

---
# https://woodpecker-ci.org/docs/intro
when:
event: [push, manual]
variables:
images:
- &image_node node:18.16.0
- &image_aws_cli amazon/aws-cli:2.15.50
- &image_drone_cache meltwater/drone-cache:v1.4.0
deploy_envs: &deploy_envs
S3_BUCKET:
from_secret: S3_BUCKET
CLOUDFRONT_DISTRIBUTION:
from_secret: CLOUDFRONT_DISTRIBUTION
AWS_ACCESS_KEY_ID:
from_secret: AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY:
from_secret: AWS_SECRET_ACCESS_KEY
AWS_REGION:
from_secret: AWS_REGION
cache_settings: &cache_settings
access-key:
from_secret: CACHE_S3_ACCESS_KEY_ID
secret-key:
from_secret: CACHE_S3_SECRET_ACCESS_KEY
endpoint:
from_secret: CACHE_S3_ENDPOINT
region:
from_secret: CACHE_S3_REGION
bucket:
from_secret: CACHE_S3_BUCKET
path_style:
from_secret: CACHE_S3_USE_PATH_STYLE
cache_key: '{{ checksum "yarn.lock" }}'
archive_format: zstd
mount:
- 'node_modules'
steps:
- name: cache/restore
image: *image_drone_cache
settings:
<<: *cache_settings
restore: true
- name: build/nodejs
depends_on: [cache/restore]
image: *image_node
commands:
- corepack enable yarn
- yarn install --prefer-offline
- yarn run build
- name: cache/rebuild
depends_on: [build/nodejs]
image: *image_drone_cache
settings:
<<: *cache_settings
rebuild: true
- name: publish/s3
depends_on: [build/nodejs]
when:
- branch: main
image: *image_aws_cli
environment:
<<: *deploy_envs
commands:
- aws s3 sync --delete ./dist "s3://$${S3_BUCKET}/"
- name: publish/cloudfront
depends_on: [publish/s3]
when:
- branch: main
image: *image_aws_cli
environment:
<<: *deploy_envs
commands:
- aws cloudfront create-invalidation --distribution-id
"$${CLOUDFRONT_DISTRIBUTION}" --paths '/*'