parent
5c423e149f
commit
fd55a52839
2 changed files with 69 additions and 110 deletions
@ -1,41 +1,74 @@ |
||||
name: App Deployment |
||||
name: Deploy to EC2 |
||||
on: |
||||
workflow_dispatch: # allow manual run |
||||
push: |
||||
branches: [ master ] |
||||
env: |
||||
PUBLIC_API_URL: "https://api.roadmap.sh" |
||||
PUBLIC_EDITOR_APP_URL: "https://draw.roadmap.sh" |
||||
PUBLIC_AVATAR_BASE_URL: "https://dodrc8eu8m09s.cloudfront.net/avatars" |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
CI: true |
||||
branches: |
||||
- master |
||||
jobs: |
||||
build: |
||||
deploy: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
with: |
||||
persist-credentials: false |
||||
- uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: 18 |
||||
- name: Prepare Draw Repository |
||||
run: | |
||||
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 |
||||
- uses: pnpm/action-setup@v2.2.2 |
||||
with: |
||||
version: 7.13.4 |
||||
- name: Setup Environment |
||||
run: | |
||||
pnpm install |
||||
- name: Generate meta and build |
||||
run: | |
||||
npm run generate-renderer |
||||
npm run build |
||||
touch ./dist/.nojekyll |
||||
echo 'roadmap.sh' > ./dist/CNAME |
||||
- name: Deploy to GH Pages |
||||
run: | |
||||
git config user.email "kamranahmed.se@gmail.com" |
||||
git config user.name "Kamran Ahmed" |
||||
git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git |
||||
npm run deploy |
||||
- name: Checkout code |
||||
uses: actions/checkout@v2 |
||||
with: |
||||
fetch-depth: 2 |
||||
- 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 } }' |
@ -1,74 +0,0 @@ |
||||
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 |
||||
with: |
||||
fetch-depth: 2 |
||||
- 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