diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..8f96889 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: 'npm' + directory: '/' # Location of package manifests + schedule: + interval: 'weekly' + groups: + npm: + patterns: + - '*' + - package-ecosystem: 'github-actions' + directory: '.github/workflows' + schedule: + interval: 'weekly' + groups: + github: + patterns: + - '*' \ No newline at end of file diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml new file mode 100644 index 0000000..855d0b4 --- /dev/null +++ b/.github/workflows/code-quality.yml @@ -0,0 +1,46 @@ +name: Code Quality + +on: + pull_request: + push: + branches: + - main + +jobs: + code-quality: + name: Code Quality + if: github.actor != 'dependabot[bot]' + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: 🛎 Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + token: ${{ secrets.WORKFLOW_COMMIT }} + + - name: 🟨 Setup PNPM + uses: pnpm/action-setup@v4 + with: + version: latest + + - name: 🟩 Setup Node.js and caching + uses: actions/setup-node@v4 + with: + node-version: latest + cache: 'pnpm' + + - name: 🔧 Install Dependencies + run: pnpm install + + - name: 📝 Check Code + run: pnpm check + + - name: ✅ Commit code format changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "Format code" + skip_fetch: true + skip_checkout: true \ No newline at end of file diff --git a/.github/workflows/deploy-website.yml b/.github/workflows/deploy-website.yml new file mode 100644 index 0000000..a145926 --- /dev/null +++ b/.github/workflows/deploy-website.yml @@ -0,0 +1,59 @@ +name: Deploy Website + +on: + pull_request: + branches: [ "main" ] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: 'pages' + cancel-in-progress: true + +jobs: + deploy-website: + name: Deploy Website + + runs-on: ubuntu-latest + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: 🛎 Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + + - name: 🟨 Setup PNPM + uses: pnpm/action-setup@v4 + with: + version: latest + + - name: 🟩 Setup Node.js and caching + uses: actions/setup-node@v4 + with: + node-version: latest + cache: 'pnpm' + + # Install dependencies + - name: 📦 Install + run: pnpm install + + - name: 🔨 Build + run: pnpm build + + # Upload artifact if requested + - name: ⬆️ Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'dist' + + - name: 🚀 Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 22a1505..3a1c9ec 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,4 +1,4 @@ { - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] } diff --git a/.vscode/launch.json b/.vscode/launch.json index d642209..230708d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,11 +1,11 @@ { - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] } diff --git a/astro.config.mjs b/astro.config.mjs index e762ba5..fb1511f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,7 @@ // @ts-check -import { defineConfig } from 'astro/config'; +import { defineConfig } from "astro/config"; // https://astro.build/config -export default defineConfig({}); +export default defineConfig({ + site: "https://virtualbrainlab.github.io", +}); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..208387f --- /dev/null +++ b/biome.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": false, + "ignore": [] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + } +} diff --git a/package.json b/package.json index 960223f..7ad081f 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,20 @@ { - "name": "pinpoint-site", - "type": "module", - "version": "0.0.1", - "scripts": { - "dev": "astro dev", - "build": "astro build", - "preview": "astro preview", - "astro": "astro" - }, - "dependencies": { - "astro": "^5.1.7" - } -} \ No newline at end of file + "name": "pinpoint-site", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro", + "format": "biome format --write .", + "lint": "biome lint --write .", + "check": "biome check --write ." + }, + "dependencies": { + "astro": "^5.1.7" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5109792..6e77c55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,10 @@ importers: astro: specifier: ^5.1.7 version: 5.1.7(rollup@4.30.1)(typescript@5.7.3) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages: @@ -48,6 +52,59 @@ packages: resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} engines: {node: '>=6.9.0'} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -1552,6 +1609,41 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..ffa7241 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/favicon.svg b/public/favicon.svg deleted file mode 100644 index f157bd1..0000000 --- a/public/favicon.svg +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/components/Welcome.astro b/src/components/Welcome.astro index 6b7b9c7..e760169 100644 --- a/src/components/Welcome.astro +++ b/src/components/Welcome.astro @@ -1,6 +1,6 @@ --- -import astroLogo from '../assets/astro.svg'; -import background from '../assets/background.svg'; +import astroLogo from "../assets/astro.svg"; +import background from "../assets/background.svg"; ---