commit
d4a563fe49
4 changed files with 83 additions and 11 deletions
@ -0,0 +1,72 @@ |
|||||||
|
name: Deploy to EC2 |
||||||
|
on: |
||||||
|
workflow_dispatch: # allow manual run |
||||||
|
push: |
||||||
|
branches: |
||||||
|
- feat/ssr |
||||||
|
jobs: |
||||||
|
deploy: |
||||||
|
runs-on: ubuntu-latest |
||||||
|
steps: |
||||||
|
- name: Checkout code |
||||||
|
uses: actions/checkout@v2 |
||||||
|
- uses: actions/setup-node@v1 |
||||||
|
with: |
||||||
|
node-version: 20 |
||||||
|
- uses: pnpm/action-setup@v3.0.0 |
||||||
|
with: |
||||||
|
version: 8.15.6 |
||||||
|
|
||||||
|
# -------------------- |
||||||
|
# Setup configuration |
||||||
|
# -------------------- |
||||||
|
- name: Prepare configuration files |
||||||
|
run: | |
||||||
|
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/infra-config.git configuration --depth 1 |
||||||
|
- name: Copy configuration files |
||||||
|
run: | |
||||||
|
cp configuration/dist/github/developer-roadmap.env .env |
||||||
|
|
||||||
|
# -------------------- |
||||||
|
# Prepare the build |
||||||
|
# -------------------- |
||||||
|
- name: Install dependencies |
||||||
|
run: | |
||||||
|
pnpm install |
||||||
|
- name: Generate build |
||||||
|
run: | |
||||||
|
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 |
||||||
|
npm run generate-renderer |
||||||
|
npm run build |
||||||
|
|
||||||
|
# -------------------- |
||||||
|
# Deploy to EC2 |
||||||
|
# -------------------- |
||||||
|
- uses: webfactory/ssh-agent@v0.7.0 |
||||||
|
with: |
||||||
|
ssh-private-key: ${{ secrets.EC2_PRIVATE_KEY }} |
||||||
|
- name: Deploy app to EC2 |
||||||
|
run: | |
||||||
|
rsync -apvz --delete --no-times --exclude "configuration" -e "ssh -o StrictHostKeyChecking=no" -p ./ ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}:/var/www/v2.roadmap.sh/ |
||||||
|
- name: Restart PM2 |
||||||
|
uses: appleboy/ssh-action@master |
||||||
|
with: |
||||||
|
host: ${{ secrets.EC2_HOST }} |
||||||
|
username: ${{ secrets.EC2_USERNAME }} |
||||||
|
key: ${{ secrets.EC2_PRIVATE_KEY }} |
||||||
|
script: | |
||||||
|
cd /var/www/v2.roadmap.sh |
||||||
|
sudo pm2 restart web-roadmap |
||||||
|
|
||||||
|
# -------------------- |
||||||
|
# Clear Cloudfront Caching |
||||||
|
# -------------------- |
||||||
|
- name: Clear Cloudfront Caching |
||||||
|
run: | |
||||||
|
curl -L \ |
||||||
|
-X POST \ |
||||||
|
-H "Accept: application/vnd.github+json" \ |
||||||
|
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \ |
||||||
|
-H "X-GitHub-Api-Version: 2022-11-28" \ |
||||||
|
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \ |
||||||
|
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront", "is_verbose": false } }' |
Loading…
Reference in new issue