下面介绍如何在GitHub仓库中使用GitHub Actions,自动部署静态文件。
假设S3存储桶和仓库已经创建。
登录AWS,进入
IAM↗(Identity and Access Management,身份与访问管理)服务。
依次点击用户 > 创建用户。
设置名称后点击下一步。
在权限设置页面选择直接附加策略,勾选AmazoneS3FullAccess和CloudFrontFullAccess。
继续点击下一步,完成用户创建。
之后依次进入用户 > 安全凭证 > 创建访问密钥。
选择其他,并填写标签。
生成访问密钥后,请妥善保管。
绝对不要
将密钥放在公开位置。
进入仓库,依次选择Settings > Security > Secrets and variables,点击New repository secret。
添加AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
在.github/workflows目录中创建deploy.yml。
./.github/workflows/deploy.ymlname: Main CI
on:
push:
branches:
- main
jobs:
push-to-s3:
name: Push to S3
runs-on: ubuntu-20.04
# 레포지토리에 접근하여 CI서버로 코드를 내려받음
steps:
- name: Checkout
uses: actions/checkout@v3
# 캐시 사용
- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
./posts
key: ${{ runner.os }}-posts-${{ hashFiles('**/posts/**') }}
# aws에 접근하기 위한 권한 설정
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
# s3에 파일 업로드
- name: Upload to S3
run: |
aws s3 sync \
./posts s3://promleeblog-cdn
# file path, s3 버킷 이름
添加后,推送到main分支,GitHub Actions就会执行,并将文件上传到S3存储桶。