Update dependencies, add deployment workflow
All checks were successful
Deploy / build (push) Successful in 36s

This commit is contained in:
Moritz Ruth 2025-03-02 18:04:03 +01:00
parent 8ed9e9382c
commit f8dcf2315b
Signed by: moritzruth
GPG key ID: C9BBAB79405EE56D
7 changed files with 1261 additions and 1513 deletions

View file

@ -0,0 +1,45 @@
name: "Deploy"
on: ["push"]
jobs:
build:
runs-on: "docker"
steps:
- name: "Checkout"
uses: "https://code.forgejo.org/actions/checkout@v4"
- name: "Setup pnpm"
uses: "https://github.com/pnpm/action-setup@v4"
with:
version: 10
- name: "Setup Node.js"
uses: "https://code.forgejo.org/actions/setup-node@v4"
with:
node-version-file: "package.json"
cache: "pnpm"
- name: "Install dependencies"
run: "pnpm install"
- name: "Build"
run: "pnpm build"
- name: "Upload"
id: "upload"
uses: "https://code.forgejo.org/forgejo/upload-artifact@v4"
with:
name: "site.zip"
if-no-files-found: "error"
path: |
./dist/**/*
!dist/.vite
- name: "Notify the web server"
run: >
curl https://teavail.deltaa.xyz/_sscdc/notify
--fail
-H "Content-Type: application/json"
-H "Authorization: Bearer ${{ secrets.SSCDC_SECRET }}"
-d '{ "id": "${{ github.sha }}", "download_url": "https://git.moritzruth.de/${{ github.repository }}/actions/runs/${{ github.run_number }}/artifacts/site.zip" }'

1
.nvmrc
View file

@ -1 +0,0 @@
20.11

8
README.md Normal file
View file

@ -0,0 +1,8 @@
# Teavail web frontend
> Web application for viewing Teavail statistics and managing settings
## Notes
- `chart.js` is pinned to `v4.4.1` until `vue-chartjs` is updated.

View file

@ -9,36 +9,46 @@
},
"devDependencies": {
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.12.12",
"@vitejs/plugin-vue": "^5.0.4",
"browserslist": "^4.23.0",
"modern-normalize": "^2.0.0",
"sass": "^1.77.2",
"type-fest": "^4.18.2",
"typescript": "^5.4.5",
"unocss": "^0.60.2",
"unplugin-icons": "^0.19.0",
"unplugin-vue-router": "^0.8.6",
"vite": "^5.2.11",
"@types/node": "^22.13.8",
"@vitejs/plugin-vue": "^5.2.1",
"browserslist": "^4.24.4",
"modern-normalize": "^3.0.1",
"sass": "^1.85.1",
"type-fest": "^4.36.0",
"typescript": "^5.8.2",
"unocss": "^66.0.0",
"unplugin-icons": "^22.1.0",
"unplugin-vue-router": "^0.11.2",
"vite": "^6.2.0",
"windicss": "^3.5.6"
},
"dependencies": {
"@fontsource-variable/fraunces": "^5.0.21",
"@fontsource-variable/manrope": "^5.0.20",
"@iconify-json/solar": "^1.1.9",
"@iconify-json/svg-spinners": "^1.1.2",
"@unhead/vue": "^1.9.10",
"@vueuse/core": "^10.9.0",
"chart.js": "^4.4.3",
"@fontsource-variable/fraunces": "^5.2.5",
"@fontsource-variable/manrope": "^5.2.5",
"@iconify-json/solar": "^1.2.2",
"@iconify-json/svg-spinners": "^1.2.2",
"@unhead/vue": "^1.11.20",
"@vueuse/core": "^10.11.1",
"chart.js": "4.4.1",
"chartjs-adapter-date-fns": "^3.0.0",
"color-alpha": "^2.0.0",
"date-fns": "^3.6.0",
"ky": "^1.3.0",
"ky": "^1.7.5",
"lodash-es": "^4.17.21",
"nanoid": "^5.0.7",
"temporal-polyfill": "^0.2.4",
"vue": "^3.4.27",
"vue-chartjs": "^5.3.1",
"vue-router": "^4.3.2"
"nanoid": "^5.1.2",
"temporal-polyfill": "^0.2.5",
"vue": "^3.5.13",
"vue-chartjs": "^5.3.2",
"vue-router": "^4.5.0"
},
"engines": {
"node": "22"
},
"pnpm": {
"onlyBuiltDependencies": [
"@parcel/watcher",
"esbuild",
"vue-demi"
]
}
}

2647
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -93,9 +93,6 @@
}
}
console.log(props.brewingEvents)
console.log(props.brewingEvents.filter(e => e.typeOfTeaId === "9").map(e => e.timestamp.toJSON()))
const chartData = computed<ChartData<"line">>(() => ({
datasets: [
{

View file

@ -2,13 +2,15 @@ import "uno.css"
import { createApp } from "vue"
import App from "./App.vue"
import { createRouter, createWebHistory } from "vue-router/auto"
import { createRouter, createWebHistory } from "vue-router"
import { routes, handleHotUpdate } from "vue-router/auto-routes"
import { createHead } from "@unhead/vue"
const app = createApp(App)
const router = createRouter({
history: createWebHistory()
history: createWebHistory(),
routes
})
const head = createHead()
@ -16,4 +18,8 @@ const head = createHead()
app
.use(router)
.use(head)
.mount("#app")
.mount("#app")
if (import.meta.hot) {
handleHotUpdate(router)
}