forked from kamranahmedse/developer-roadmap
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #132 from kamranahmedse/master
Create a new pull request by comparing changes across two branches
- Loading branch information
Showing
80 changed files
with
2,638 additions
and
356 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/[email protected] | ||
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 "[email protected]" | ||
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/[email protected] | ||
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/[email protected] | ||
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/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/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 } }' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.