File tree Expand file tree Collapse file tree 1 file changed +69
-0
lines changed
Expand file tree Collapse file tree 1 file changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Build and Deploy React Projects to GitHub Pages (docs branch)
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ workflow_dispatch :
8+
9+ jobs :
10+ build :
11+ runs-on : ubuntu-latest
12+
13+ steps :
14+ - name : Checkout repository
15+ uses : actions/checkout@v3
16+
17+ - name : Set up Node.js
18+ uses : actions/setup-node@v3
19+ with :
20+ node-version : ' 18'
21+
22+ - name : Build all React projects
23+ run : |
24+ projects=(
25+ "01-Tic-Tac-Toe"
26+ "02-Searchable-Product-Data-Table"
27+ "03. Counter"
28+ "04. ToDo-App"
29+ "05. Meals-API-Project"
30+ "06. Calculator"
31+ "07. Toggle-Background-Color"
32+ "08. Hidden-Search-Bar"
33+ "09. Testimonials"
34+ "10. Accordions"
35+ "11. Form Validation/v1"
36+ )
37+
38+ rm -rf output
39+ mkdir -p output
40+
41+ for project in "${projects[@]}"; do
42+ echo "Building $project"
43+ cd "$project"
44+ npm install
45+
46+ # Add homepage for GitHub Pages
47+ homepage="https://$GITHUB_REPOSITORY_OWNER.github.io/$project"
48+ npx json -I -f package.json -e "this.homepage=\"$homepage\""
49+
50+ npm run build
51+ cd ..
52+
53+ mkdir -p "output/$project"
54+ cp -r "$project/build/." "output/$project/"
55+ done
56+
57+ - name : Deploy to `docs` branch
58+ run : |
59+ cd output
60+ git init
61+ git config user.name "github-actions"
62+ git config user.email "github-actions@github.com"
63+ git remote add origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
64+ git checkout -b docs
65+
66+ touch .nojekyll # Avoid GitHub Pages ignoring folders starting with underscore
67+ git add .
68+ git commit -m "Deploy React projects to GitHub Pages [docs branch]"
69+ git push --force origin docs
You can’t perform that action at this time.
0 commit comments