fix ci
continuous-integration/drone/push Build is failing Details

maxime 1 year ago
parent 3beff7e972
commit 15ace155e2

@ -1,6 +1,6 @@
module.exports = { module.exports = {
root: true, root: true,
env: { browser: true, es2023: true }, env: { browser: true, es2021: true },
extends: [ extends: [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",

@ -3,45 +3,41 @@ type: docker
name: "CI and Deploy on maxou.dev" name: "CI and Deploy on maxou.dev"
volumes: volumes:
- name: server - name: server
temp: {} temp: { }
trigger: trigger:
event: event:
- push - push
steps: steps:
- image: node:latest - image: node:latest
name: "front CI" name: "front CI"
commands: commands:
- npm install - npm install
- npm run tsc - npm run tsc
# - image: node:latest
# name: "build node" - image: node:latest
# volumes: &outputs name: "build react"
# - name: server volumes: &outputs
# path: /outputs - name: server
# depends_on: path: /outputs
# - "front CI" depends_on:
# commands: - "front CI"
# - curl -L moshell.dev/setup.sh > /tmp/moshell_setup.sh commands:
# - chmod +x /tmp/moshell_setup.sh - sed -Ei "/VITE_BASE=/VITE_BASE=$/DRONE_BRANCH/" .env
# - echo n | /tmp/moshell_setup.sh - npm run build -- --base=/$DRONE_BRANCH
# - echo "VITE_API_ENDPOINT=/IQBall/$DRONE_BRANCH/public/api" >> .env.PROD - mv dist/* /outputs
# - echo "VITE_BASE=/IQBall/$DRONE_BRANCH/public" >> .env.PROD
# - apt update && apt install jq -y
# - - image: eeacms/rsync:latest
# - BASE="/IQBall/$DRONE_BRANCH/public" OUTPUT=/outputs /root/.local/bin/moshell ci/build_react.msh name: Deliver on staging server branch
## depends_on:
# - image: eeacms/rsync:latest - "build react"
# name: Deliver on staging server branch volumes: *outputs
# depends_on: environment:
# - "prepare php" SERVER_PRIVATE_KEY:
# - "build node" from_secret: SERVER_PRIVATE_KEY
# volumes: *outputs commands:
# environment: - chmod +x ci/deploy.sh
# SERVER_PRIVATE_KEY: - ci/deploy.sh
# from_secret: SERVER_PRIVATE_KEY
# commands:
# - chmod +x ci/deploy.sh
# - ci/deploy.sh

@ -1,8 +1,9 @@
set -e
export OUTPUT=$1 export OUTPUT=$1
export BASE=$2 export BASE=$2
rm -rf $OUTPUT/* rm -rf "$OUTPUT"/*
echo "VITE_API_ENDPOINT=$BASE/api" >> .env.PROD echo "VITE_API_ENDPOINT=$BASE/api" >> .env.PROD
echo "VITE_BASE=$BASE" >> .env.PROD echo "VITE_BASE=$BASE" >> .env.PROD

@ -5,7 +5,7 @@ echo "$SERVER_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 0600 ~/.ssh chmod 0600 ~/.ssh
chmod 0500 ~/.ssh/id_rsa* chmod 0500 ~/.ssh/id_rsa*
SERVER_ROOT=/srv/www/IQBall SERVER_ROOT=/srv/www/iqball
ssh -p 80 -o 'StrictHostKeyChecking=no' iqball@maxou.dev mkdir -p $SERVER_ROOT/$DRONE_BRANCH ssh -p 80 -o 'StrictHostKeyChecking=no' iqball@maxou.dev mkdir -p $SERVER_ROOT/$DRONE_BRANCH
rsync -avz -e "ssh -p 80 -o 'StrictHostKeyChecking=no'" --delete /outputs/* iqball@maxou.dev:$SERVER_ROOT/$DRONE_BRANCH rsync -avz -e "ssh -p 80 -o 'StrictHostKeyChecking=no'" --delete /outputs/* iqball@maxou.dev:$SERVER_ROOT/$DRONE_BRANCH

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/src/assets/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/src/assets/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title> <title>IQBall</title>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>

@ -3,6 +3,7 @@ import { BrowserRouter, Outlet, Route, Routes } from "react-router-dom"
import { Header } from "./pages/template/Header.tsx" import { Header } from "./pages/template/Header.tsx"
import "./style/app.css" import "./style/app.css"
import { lazy } from "react" import { lazy } from "react"
import { BASE } from "./Constants.ts"
const HomePage = lazy(() => import("./pages/HomePage.tsx")) const HomePage = lazy(() => import("./pages/HomePage.tsx"))
const LoginPage = lazy(() => import("./pages/LoginPage.tsx")) const LoginPage = lazy(() => import("./pages/LoginPage.tsx"))
@ -18,38 +19,41 @@ export default function App() {
<div id="app"> <div id="app">
<BrowserRouter> <BrowserRouter>
<Outlet /> <Outlet />
<Routes> <Routes>
<Route path={"/login"} element={<LoginPage />} /> <Route path={BASE}>
<Route path={"/register"} element={<RegisterPage />} />
<Route path={"login"} element={<LoginPage />} />
<Route path={"register"} element={<RegisterPage />} />
<Route path={"/"} element={<AppLayout />}> <Route path={""} element={<AppLayout />}>
<Route path={"/"} element={<HomePage />} /> <Route path={""} element={<HomePage />} />
<Route path={"/home"} element={<HomePage />} /> <Route path={"home"} element={<HomePage />} />
<Route <Route
path={"/team/new"} path={"team/new"}
element={<CreateTeamPage />} element={<CreateTeamPage />}
/> />
<Route <Route
path={"/team/:teamId"} path={"team/:teamId"}
element={<TeamPanelPage />} element={<TeamPanelPage />}
/> />
<Route <Route
path={"/tactic/new"} path={"tactic/new"}
element={<NewTacticPage />} element={<NewTacticPage />}
/> />
<Route <Route
path={"/tactic/:tacticId/edit"} path={"tactic/:tacticId/edit"}
element={<Editor guestMode={false} />} element={<Editor guestMode={false} />}
/> />
<Route <Route
path={"/tactic/edit-guest"} path={"tactic/edit-guest"}
element={<Editor guestMode={true} />} element={<Editor guestMode={true} />}
/> />
<Route path={"*"} element={<NotFoundPage />} /> <Route path={"*"} element={<NotFoundPage />} />
</Route>
</Route> </Route>
</Routes> </Routes>
</BrowserRouter> </BrowserRouter>
</div> </div>

@ -27,7 +27,7 @@ export default function LoginApp() {
if (response.ok) { if (response.ok) {
const session = getSession() const session = getSession()
const { token, expirationDate } = await response.json() const { token, expirationDate } = await response.json()
saveSession({ ...session, auth: { token, expirationDate } }) saveSession({ ...session, auth: { token, expirationDate }, urlTarget: undefined })
redirect(session.urlTarget ?? "/") redirect(session.urlTarget ?? "/")
return return
} }

@ -43,7 +43,7 @@ export default function RegisterPage() {
if (response.ok) { if (response.ok) {
const { token, expirationDate } = await response.json() const { token, expirationDate } = await response.json()
const session = getSession() const session = getSession()
saveSession({ ...session, auth: { token, expirationDate } }) saveSession({ ...session, auth: { token, expirationDate }, urlTarget: undefined })
redirect(session.urlTarget ?? "/") redirect(session.urlTarget ?? "/")
return return
} }

@ -6,7 +6,7 @@ import svgr from "vite-plugin-svgr"
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
build: { build: {
target: "es2023", target: "es2021",
}, },
plugins: [ plugins: [
react(), react(),

Loading…
Cancel
Save