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: |
on: |
||||||
|
workflow_dispatch: # allow manual run |
||||||
push: |
push: |
||||||
branches: [ master ] |
branches: |
||||||
env: |
- master |
||||||
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 |
|
||||||
jobs: |
jobs: |
||||||
build: |
deploy: |
||||||
runs-on: ubuntu-latest |
runs-on: ubuntu-latest |
||||||
steps: |
steps: |
||||||
- uses: actions/checkout@v4 |
- name: Checkout code |
||||||
with: |
uses: actions/checkout@v2 |
||||||
persist-credentials: false |
with: |
||||||
- uses: actions/setup-node@v1 |
fetch-depth: 2 |
||||||
with: |
- uses: actions/setup-node@v1 |
||||||
node-version: 18 |
with: |
||||||
- name: Prepare Draw Repository |
node-version: 20 |
||||||
run: | |
- uses: pnpm/action-setup@v3.0.0 |
||||||
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 |
with: |
||||||
- uses: pnpm/action-setup@v2.2.2 |
version: 8.15.6 |
||||||
with: |
|
||||||
version: 7.13.4 |
# -------------------- |
||||||
- name: Setup Environment |
# Setup configuration |
||||||
run: | |
# -------------------- |
||||||
pnpm install |
- name: Prepare configuration files |
||||||
- name: Generate meta and build |
run: | |
||||||
run: | |
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/infra-config.git configuration --depth 1 |
||||||
npm run generate-renderer |
- name: Copy configuration files |
||||||
npm run build |
run: | |
||||||
touch ./dist/.nojekyll |
cp configuration/dist/github/developer-roadmap.env .env |
||||||
echo 'roadmap.sh' > ./dist/CNAME |
|
||||||
- name: Deploy to GH Pages |
# -------------------- |
||||||
run: | |
# Prepare the build |
||||||
git config user.email "kamranahmed.se@gmail.com" |
# -------------------- |
||||||
git config user.name "Kamran Ahmed" |
- name: Install dependencies |
||||||
git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git |
run: | |
||||||
npm run deploy |
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