Skip to content

Commit

Permalink
PR deploy testing (#35)
Browse files Browse the repository at this point in the history
* PR deploy testing

Fixes #34

Add GitHub Action to deploy PR on GitHub Pages.

* **Update `src/App.tsx`**
  - Change `BrowserRouter` `basename` prop to use `process.env.PUBLIC_URL`.

* **Modify `.github/workflows/pr-check.yml`**
  - Add permissions for `pages: write` and `id-token: write`.
  - Add step to set up Pages using `actions/configure-pages@v4`.
  - Add step to upload artifact using `actions/upload-pages-artifact@v3`.
  - Add step to deploy to GitHub Pages using `actions/deploy-pages@v4`.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/TechPaliyal/LibraryManagement/issues/34?shareId=XXXX-XXXX-XXXX-XXXX).

* Add new route for PR deployment URL and update GitHub Actions workflows

* **App.tsx**
  - Add a new route for the PR deployment URL (`/pr-deploy/:prNumber`).

* **.github/workflows/pr-check.yml**
  - Add a new job to deploy the PR to GitHub Pages.
  - Update the `environment` name to include the PR number.
  - Update the `url` to include the PR number.

* **.github/workflows/deploy.yml**
  - Add a new job to deploy the PR to GitHub Pages.
  - Update the `environment` name to include the PR number.
  - Update the `url` to include the PR number.
  • Loading branch information
yogeshpaliyal authored Aug 11, 2024
1 parent cbed86a commit 1e42b01
Show file tree
Hide file tree
Showing 3 changed files with 152 additions and 86 deletions.
129 changes: 79 additions & 50 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,79 @@
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ['main']

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload dist folder
path: './dist'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 name: Deploy static content to Pages
2
3 on:
4 # Runs on pushes targeting the default branch
5 push:
6 branches: ['main']
7
8 # Allows you to run this workflow manually from the Actions tab
9 workflow_dispatch:
10
11 # Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
12 permissions:
13 contents: read
14 pages: write
15 id-token: write
16
17 # Allow one concurrent deployment
18 concurrency:
19 group: 'pages'
20 cancel-in-progress: true
21
22 jobs:
23 # Single deploy job since we're just deploying
24 deploy:
25 environment:
26 name: github-pages-${{ github.event.pull_request.number }}
27 url: ${{ steps.deployment.outputs.page_url }}
28 runs-on: ubuntu-latest
29 steps:
30 - name: Checkout
31 uses: actions/checkout@v4
32 - name: Set up Node
33 uses: actions/setup-node@v4
34 with:
35 node-version: 20
36 cache: 'npm'
37 - name: Install dependencies
38 run: npm ci
39 - name: Build
40 run: npm run build
41 - name: Setup Pages
42 uses: actions/configure-pages@v4
43 - name: Upload artifact
44 uses: actions/upload-pages-artifact@v3
45 with:
46 # Upload dist folder
47 path: './dist'
48 - name: Deploy to GitHub Pages
49 id: deployment
50 uses: actions/deploy-pages@v4
51
52 pr-deploy:
53 if: github.event_name == 'pull_request'
54 environment:
55 name: github-pages-pr-${{ github.event.pull_request.number }}
56 url: ${{ steps.deployment.outputs.page_url }}
57 runs-on: ubuntu-latest
58 steps:
59 - name: Checkout
60 uses: actions/checkout@v4
61 - name: Set up Node
62 uses: actions/setup-node@v4
63 with:
64 node-version: 20
65 cache: 'npm'
66 - name: Install dependencies
67 run: npm ci
68 - name: Build
69 run: npm run build
70 - name: Setup Pages
71 uses: actions/configure-pages@v4
72 - name: Upload artifact
73 uses: actions/upload-pages-artifact@v3
74 with:
75 path: './dist'
76 - name: Deploy to GitHub Pages
77 id: deployment
78 uses: actions/deploy-pages@v4
79
102 changes: 71 additions & 31 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,71 @@
name: PR Check

on:
pull_request:
branches: ['main']

# Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
permissions:
contents: read

# Allow one concurrent deployment
concurrency:
group: 'pages'
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build

1 name: PR Check
2
3 on:
4 pull_request:
5 branches: ['main']
6
7 # Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
8 permissions:
9 contents: read
10 pages: write
11 id-token: write
12
13 # Allow one concurrent deployment
14 concurrency:
15 group: 'pages'
16 cancel-in-progress: false
17
18 jobs:
19 build:
20 runs-on: ubuntu-latest
21 steps:
22 - name: Checkout
23 uses: actions/checkout@v4
24 - name: Set up Node
25 uses: actions/setup-node@v4
26 with:
27 node-version: 20
28 cache: 'npm'
29 - name: Install dependencies
30 run: npm ci
31 - name: Build
32 run: npm run build
33 - name: Setup Pages
34 uses: actions/configure-pages@v4
35 - name: Upload artifact
36 uses: actions/upload-pages-artifact@v3
37 with:
38 path: './dist'
39 - name: Deploy to GitHub Pages
40 id: deployment
41 uses: actions/deploy-pages@v4
42
43 pr-deploy:
44 if: github.event_name == 'pull_request'
45 environment:
46 name: github-pages-pr-${{ github.event.pull_request.number }}
47 url: ${{ steps.deployment.outputs.page_url }}
48 runs-on: ubuntu-latest
49 steps:
50 - name: Checkout
51 uses: actions/checkout@v4
52 - name: Set up Node
53 uses: actions/setup-node@v4
54 with:
55 node-version: 20
56 cache: 'npm'
57 - name: Install dependencies
58 run: npm ci
59 - name: Build
60 run: npm run build
61 - name: Setup Pages
62 uses: actions/configure-pages@v4
63 - name: Delete existing artifact
64 run: rm -rf ./dist
65 - name: Upload artifact
66 uses: actions/upload-pages-artifact@v3
67 with:
68 path: './dist'
69 - name: Deploy to GitHub Pages
70 id: deployment
71 uses: actions/deploy-pages@v4
7 changes: 2 additions & 5 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import './App.css'
import LoginForm from './Pages/LoginForm/LoginForm';
import Register from './Pages/register/Register';
Expand All @@ -9,17 +8,15 @@ import Users from './Pages/Users';

function App() {
return (
<BrowserRouter basename="/LibraryManagement">
<BrowserRouter basename={process.env.PUBLIC_URL}>
<Routes>
<Route path="/" element={<LandingPage />} />
<Route path="/library/login" element={<LoginForm up='library'/>} />
<Route path="/user/login" element={<LoginForm up='user'/>} />
<Route path='/register' element={<Register/>}/>
<Route path='/librarylist' element={<Librarylist/>}/>
<Route path='/users' element={<Users/>}/>



<Route path='/pr-deploy/:prNumber' element={<LandingPage />} />
</Routes>
</BrowserRouter>
)
Expand Down

0 comments on commit 1e42b01

Please sign in to comment.