Skip to content

Commit 1bbf1c9

Browse files
Merge pull request #1716 from ral-facilities/vite
Migrate from CRA to Vite
2 parents d1189b1 + c8f6450 commit 1bbf1c9

File tree

319 files changed

+7859
-13701
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+7859
-13701
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
/packages/datagateway-*/server
66
/packages/datagateway-*/README.md
77
**/build
8+
**/dist
89
**/coverage
910
**/lib
1011
**/node_modules

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ module.exports = {
22
parser: '@typescript-eslint/parser',
33
env: {
44
browser: true,
5-
jest: true,
65
es6: true,
76
node: true,
87
},
@@ -34,6 +33,7 @@ module.exports = {
3433
},
3534
],
3635
'import/no-extraneous-dependencies': 'error',
36+
'react/react-in-jsx-scope': 'off',
3737
},
3838
overrides: [
3939
{

.github/workflows/ci-build.yml

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ jobs:
1414
runs-on: ubuntu-24.04
1515
steps:
1616
- name: Checkout repo
17-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
17+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
1818
- name: Setup Node.js
19-
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4
19+
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
2020
with:
2121
node-version: 20
2222
cache: 'yarn'
@@ -33,31 +33,31 @@ jobs:
3333
# Test coverage upload
3434
- name: Upload unit test coverage for the Common package
3535
if: success()
36-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4
36+
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
3737
with:
3838
directory: ./packages/datagateway-common/
3939
flags: common
4040
fail_ci_if_error: true
4141
token: ${{ secrets.CODECOV_TOKEN }}
4242
- name: Upload unit test coverage for the DataView package
4343
if: success()
44-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4
44+
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
4545
with:
4646
directory: ./packages/datagateway-dataview/
4747
flags: dataview
4848
fail_ci_if_error: true
4949
token: ${{ secrets.CODECOV_TOKEN }}
5050
- name: Upload unit test coverage for the Search package
5151
if: success()
52-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4
52+
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
5353
with:
5454
directory: ./packages/datagateway-search/
5555
flags: search
5656
fail_ci_if_error: true
5757
token: ${{ secrets.CODECOV_TOKEN }}
5858
- name: Upload unit test coverage for the Download package
5959
if: success()
60-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4
60+
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
6161
with:
6262
directory: ./packages/datagateway-download/
6363
flags: download
@@ -69,24 +69,24 @@ jobs:
6969
runs-on: ubuntu-24.04
7070
steps:
7171
- name: Checkout repo
72-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
72+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
7373
- name: Add apt repo
7474
run: sudo add-apt-repository universe
7575
- name: Setup Java
76-
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4
76+
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
7777
with:
7878
distribution: 'zulu'
7979
java-version: 8
8080
java-package: jdk
8181
- name: Setup Python
82-
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
82+
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
8383
with:
8484
python-version: 3.9
8585
architecture: x64
8686

8787
# ICAT Ansible clone and install dependencies
8888
- name: Checkout icat-ansible
89-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
89+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
9090
with:
9191
repository: icatproject-contrib/icat-ansible
9292
ref: datagateway-download-api-3.1.0
@@ -136,7 +136,7 @@ jobs:
136136
cd /home/runner/install/icat.server/ && ./setup -vv install
137137
138138
- name: Checkout datagateway-api
139-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
139+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
140140
with:
141141
repository: ral-facilities/datagateway-api
142142
path: datagateway-api
@@ -165,7 +165,7 @@ jobs:
165165

166166
# E2E tests
167167
- name: Setup Node.js
168-
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4
168+
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
169169
with:
170170
node-version: 20
171171
cache: 'yarn'
@@ -177,7 +177,7 @@ jobs:
177177
run: yarn workspace datagateway-dataview run e2e
178178
- name: Upload Cypress screenshots
179179
if: failure()
180-
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4
180+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
181181
with:
182182
name: DataView-Screenshots
183183
path: packages/datagateway-dataview/cypress/screenshots
@@ -187,24 +187,24 @@ jobs:
187187
runs-on: ubuntu-24.04
188188
steps:
189189
- name: Checkout repo
190-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
190+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
191191
- name: Add apt repo
192192
run: sudo add-apt-repository universe
193193
- name: Setup Java
194-
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4
194+
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
195195
with:
196196
distribution: 'zulu'
197197
java-version: 8
198198
java-package: jdk
199199
- name: Setup Python
200-
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
200+
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
201201
with:
202202
python-version: 3.9
203203
architecture: x64
204204

205205
# ICAT Ansible clone and install dependencies
206206
- name: Checkout icat-ansible
207-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
207+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
208208
with:
209209
repository: icatproject-contrib/icat-ansible
210210
ref: master
@@ -291,7 +291,7 @@ jobs:
291291
run: rm -f login_output
292292

293293
- name: Checkout datagateway-api
294-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
294+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
295295
with:
296296
repository: ral-facilities/datagateway-api
297297
path: datagateway-api
@@ -330,7 +330,7 @@ jobs:
330330

331331
# E2E tests
332332
- name: Setup Node.js
333-
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4
333+
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
334334
with:
335335
node-version: 20
336336
cache: 'yarn'
@@ -342,7 +342,7 @@ jobs:
342342
run: yarn workspace datagateway-download run e2e
343343
- name: Upload Cypress screenshots
344344
if: failure()
345-
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4
345+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
346346
with:
347347
name: Download-Screenshots
348348
path: packages/datagateway-download/cypress/screenshots
@@ -352,24 +352,24 @@ jobs:
352352
runs-on: ubuntu-24.04
353353
steps:
354354
- name: Checkout repo
355-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
355+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
356356
- name: Add apt repo
357357
run: sudo add-apt-repository universe
358358
- name: Setup Java
359-
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4
359+
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
360360
with:
361361
distribution: 'zulu'
362362
java-version: 8
363363
java-package: jdk
364364
- name: Setup Python
365-
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
365+
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
366366
with:
367367
python-version: 3.9
368368
architecture: x64
369369

370370
# ICAT Ansible clone and install dependencies
371371
- name: Checkout icat-ansible
372-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
372+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
373373
with:
374374
repository: icatproject-contrib/icat-ansible
375375
ref: master
@@ -423,7 +423,7 @@ jobs:
423423
cd /home/runner/install/icat.server/ && ./setup -vv install
424424
425425
- name: Checkout datagateway-api
426-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
426+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
427427
with:
428428
repository: ral-facilities/datagateway-api
429429
path: datagateway-api
@@ -460,7 +460,7 @@ jobs:
460460

461461
# E2E tests
462462
- name: Setup Node.js
463-
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4
463+
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
464464
with:
465465
node-version: 20
466466
cache: 'yarn'
@@ -472,7 +472,7 @@ jobs:
472472
run: yarn workspace datagateway-search run e2e
473473
- name: Upload Cypress screenshots
474474
if: failure()
475-
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4
475+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
476476
with:
477477
name: Search-Screenshots
478478
path: packages/datagateway-search/cypress/screenshots
@@ -485,7 +485,7 @@ jobs:
485485
runs-on: ubuntu-24.04
486486
steps:
487487
- name: Checkout repo
488-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
488+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
489489

490490
- name: Login to Harbor
491491
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0

.github/workflows/release-build.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches:
55
- main
66
- develop
7-
tags:
7+
tags:
88
- '*'
99

1010
jobs:
@@ -14,10 +14,10 @@ jobs:
1414

1515
steps:
1616
- name: Checkout repo
17-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
17+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
1818

1919
- name: Setup Node.js
20-
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4
20+
uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1
2121
with:
2222
node-version: 20
2323
cache: 'yarn'
@@ -40,29 +40,29 @@ jobs:
4040
- name: Build datagateway-dataview
4141
run: |
4242
cd packages/datagateway-dataview
43-
echo "REACT_APP_DATAVIEW_BUILD_DIRECTORY=/plugins/datagateway-dataview/" > .env.production
43+
echo "VITE_DATAVIEW_BUILD_DIRECTORY=/plugins/datagateway-dataview/" > .env.production
4444
yarn build
45-
mv build datagateway-dataview-$TAG_NAME
45+
mv dist datagateway-dataview-$TAG_NAME
4646
tar -czf ../../datagateway-dataview-$TAG_NAME.tar.gz datagateway-dataview-$TAG_NAME
4747
4848
- name: Build datagateway-download
4949
run: |
5050
cd packages/datagateway-download
51-
echo "REACT_APP_DOWNLOAD_BUILD_DIRECTORY=/plugins/datagateway-download/" > .env.production
51+
echo "VITE_DOWNLOAD_BUILD_DIRECTORY=/plugins/datagateway-download/" > .env.production
5252
yarn build
53-
mv build datagateway-download-$TAG_NAME
53+
mv dist datagateway-download-$TAG_NAME
5454
tar -czf ../../datagateway-download-$TAG_NAME.tar.gz datagateway-download-$TAG_NAME
5555
5656
- name: Build datagateway-search
5757
run: |
5858
cd packages/datagateway-search
59-
echo "REACT_APP_SEARCH_BUILD_DIRECTORY=/plugins/datagateway-search/" > .env.production
59+
echo "VITE_SEARCH_BUILD_DIRECTORY=/plugins/datagateway-search/" > .env.production
6060
yarn build
61-
mv build datagateway-search-$TAG_NAME
61+
mv dist datagateway-search-$TAG_NAME
6262
tar -czf ../../datagateway-search-$TAG_NAME.tar.gz datagateway-search-$TAG_NAME
6363
6464
- name: Update snapshot tag
65-
uses: richardsimko/update-tag@e173a8ef8f54ab526a91dad6139a25efed62424c # v1
65+
uses: richardsimko/update-tag@e173a8ef8f54ab526a91dad6139a25efed62424c # v1.0.11
6666
with:
6767
tag_name: ${{ env.TAG_NAME }}
6868
env:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ screenshots/
2222

2323
# production
2424
build/
25+
dist/
2526
lib/
2627

2728
# misc

Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ COPY . .
1414
RUN --mount=type=cache,target=/root/.cache/.yarn/cache \
1515
set -eux; \
1616
# Set the React production variables which hold reference to the paths of the plugin builds \
17-
echo "REACT_APP_DATAVIEW_BUILD_DIRECTORY=/datagateway-dataview/" > packages/datagateway-dataview/.env.production; \
18-
echo "REACT_APP_DOWNLOAD_BUILD_DIRECTORY=/datagateway-download/" > packages/datagateway-download/.env.production; \
19-
echo "REACT_APP_SEARCH_BUILD_DIRECTORY=/datagateway-search/" > packages/datagateway-search/.env.production; \
17+
echo "VITE_DATAVIEW_BUILD_DIRECTORY=/datagateway-dataview/" > packages/datagateway-dataview/.env.production; \
18+
echo "VITE_DOWNLOAD_BUILD_DIRECTORY=/datagateway-download/" > packages/datagateway-download/.env.production; \
19+
echo "VITE_SEARCH_BUILD_DIRECTORY=/datagateway-search/" > packages/datagateway-search/.env.production; \
2020
\
2121
cp packages/datagateway-dataview/public/datagateway-dataview-settings.example.json packages/datagateway-dataview/public/datagateway-dataview-settings.json; \
2222
cp packages/datagateway-download/public/datagateway-download-settings.example.json packages/datagateway-download/public/datagateway-download-settings.json; \
@@ -31,9 +31,9 @@ FROM httpd:2.4.58-alpine3.19@sha256:92535cf7f151901ba91b04186292c3bd5bf82aa6ffa6
3131
WORKDIR /usr/local/apache2/htdocs
3232

3333
# Put the output of the build into an apache server
34-
COPY --from=builder /datagateway-build/packages/datagateway-dataview/build/. ./datagateway-dataview/
35-
COPY --from=builder /datagateway-build/packages/datagateway-download/build/. ./datagateway-download/
36-
COPY --from=builder /datagateway-build/packages/datagateway-search/build/. ./datagateway-search/
34+
COPY --from=builder /datagateway-build/packages/datagateway-dataview/dist/. ./datagateway-dataview/
35+
COPY --from=builder /datagateway-build/packages/datagateway-download/dist/. ./datagateway-download/
36+
COPY --from=builder /datagateway-build/packages/datagateway-search/dist/. ./datagateway-search/
3737

3838
RUN set -eux; \
3939
\

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
"lint": "yarn workspaces foreach --interlaced --verbose --parallel --jobs 4 run lint:js",
2020
"tsc": "yarn workspace datagateway-common tsc",
2121
"test": "yarn test:unit && yarn test:e2e",
22-
"test:unit": "yarn workspaces foreach --interlaced --verbose --parallel --jobs 4 --exclude datagateway run test --runInBand",
22+
"test:unit": "yarn workspaces foreach --interlaced --verbose --parallel --jobs 4 --exclude datagateway run test --watch=false",
2323
"test:e2e": "yarn workspaces foreach --interlaced --verbose --parallel --jobs 3 run e2e",
24-
"datagateway-dataview": "yarn workspace datagateway-dataview start",
25-
"datagateway-download": "yarn workspace datagateway-download start",
26-
"datagateway-search": "yarn workspace datagateway-search start",
24+
"datagateway-dataview": "yarn workspace datagateway-dataview dev",
25+
"datagateway-download": "yarn workspace datagateway-download dev",
26+
"datagateway-search": "yarn workspace datagateway-search dev",
2727
"postinstall": "husky install"
2828
},
2929
"packageManager": "yarn@3.7.0"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import axios from 'axios';
2+
3+
const requests = {
4+
get: vi.fn(() => Promise.resolve({ data: {} })),
5+
post: vi.fn(() => Promise.resolve({ data: {} })),
6+
delete: vi.fn(() => Promise.resolve({ data: {} })),
7+
CancelToken: axios.CancelToken,
8+
AxiosError: axios.AxiosError,
9+
};
10+
11+
export default requests;

packages/datagateway-common/src/__mocks__/react-i18next.jsx renamed to packages/datagateway-common/__mocks__/react-i18next.jsx

File renamed without changes.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="utf-8" />
6+
<link rel="shortcut icon" href="/favicon.ico" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1" />
8+
<meta name="theme-color" content="#000000" />
9+
<meta name="description" content="Website created using Vite" />
10+
<link rel="apple-touch-icon" href="logo192.png" />
11+
<!--
12+
manifest.json provides metadata used when your web app is installed on a
13+
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
14+
-->
15+
<link rel="manifest" href="/manifest.json" />
16+
<title>React App</title>
17+
</head>
18+
19+
<body>
20+
<noscript>You need to enable JavaScript to run this app.</noscript>
21+
<div id="root"></div>
22+
<script type="module" src="/src/main.tsx"></script>
23+
</body>
24+
25+
</html>

0 commit comments

Comments
 (0)