chore: bootstrap (#1)

This commit is contained in:
Daniel Dietzler
2026-02-20 11:50:20 +01:00
committed by GitHub
parent 7397da3c1e
commit c014a1b536
13 changed files with 2452 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
name: Publish
on:
release:
types: [published]
permissions:
contents: read
id-token: write
packages: write
jobs:
publish:
name: Publish
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup Mise
uses: immich-app/devtools/actions/use-mise@dab18118da6476e8237ac94080fd937983fecd42 # use-mise-action-v1.1.2
- name: Find package
id: find-package
env:
RELEASE_TAG_NAME: ${{ github.event.release.tag_name }}
run: |
PACKAGE_NAME="${RELEASE_TAG_NAME%-*}"
echo "Package is $PACKAGE_NAME"
echo "package_name=$PACKAGE_NAME" >> "$GITHUB_OUTPUT"
- name: Install
run: pnpm --filter ./packages/${{ steps.find-package.outputs.package_name }} install
- name: Build
run: pnpm --filter ./packages/${{ steps.find-package.outputs.package_name }} build
- name: Publish
run: pnpm --filter ./packages/${{ steps.find-package.outputs.package_name }} publish --no-git-checks
+28
View File
@@ -0,0 +1,28 @@
name: Release Please
on:
workflow_dispatch:
release:
types: [published]
pull_request:
types: [unlabeled]
push:
branches:
- main
permissions: {}
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
with:
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
- uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0
with:
token: ${{ steps.generate-token.outputs.token }}
+36
View File
@@ -0,0 +1,36 @@
name: Test
on:
workflow_dispatch:
pull_request:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup Mise
uses: immich-app/devtools/actions/use-mise@dab18118da6476e8237ac94080fd937983fecd42 # use-mise-action-v1.1.2
- name: Run npm install
run: pnpm -r install
- name: Run linter
run: pnpm lint
if: ${{ !cancelled() }}
- name: Run formatter
run: pnpm format
if: ${{ !cancelled() }}
- name: Run unit tests
run: pnpm test
if: ${{ !cancelled() }}
+24
View File
@@ -0,0 +1,24 @@
node_modules
# Output
.output
.vercel
.svelte-kit/
build/
dist/
# OS
.DS_Store
Thumbs.db
# Env
.env
.env.*
!.env.example
!.env.test
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
*storybook.log
+8
View File
@@ -0,0 +1,8 @@
# Package Managers
package-lock.json
pnpm-lock.yaml
yarn.lock
src/lib/assets
dist/
CHANGELOG.md
.svelte-kit/
+15
View File
@@ -0,0 +1,15 @@
{
"singleQuote": true,
"trailingComma": "all",
"printWidth": 120,
"plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"],
"tailwindFunctions": ["tv"],
"overrides": [
{
"files": "*.svelte",
"options": {
"parser": "svelte"
}
}
]
}
+1
View File
@@ -0,0 +1 @@
{}
+36
View File
@@ -0,0 +1,36 @@
import js from '@eslint/js';
import prettier from 'eslint-config-prettier';
import svelte from 'eslint-plugin-svelte';
import { defineConfig } from 'eslint/config';
import globals from 'globals';
import tseslint from 'typescript-eslint';
export default defineConfig([
js.configs.recommended,
...tseslint.configs.recommended,
...svelte.configs['flat/recommended'],
prettier,
...svelte.configs['flat/prettier'],
{
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
},
},
{
languageOptions: {
parserOptions: {
parser: tseslint.parser,
extraFileExtensions: ['.svelte'],
},
},
rules: {
'svelte/no-navigation-without-resolve': 'off',
},
},
{
ignores: ['packages/**/build/', 'packages/**/.svelte-kit/', 'packages/**/dist/'],
},
]);
+3
View File
@@ -0,0 +1,3 @@
[tools]
node = "24.13"
pnpm = "10.29.3"
+38
View File
@@ -0,0 +1,38 @@
{
"name": "packages",
"version": "0.0.1",
"description": "A collection of libraries around the Immich project",
"private": false,
"type": "module",
"packageManager": "pnpm@10.29.3",
"engines": {
"pnpm": ">=10.0.0"
},
"repository": {
"type": "git",
"url": "git+https://github.com/immich-app/packages.git"
},
"scripts": {
"lint": "eslint --max-warnings 0",
"lint:fix": "pnpm lint -- --fix",
"format": "prettier --check .",
"format:fix": "prettier --write .",
"test": "pnpm -r --filter ./packages/* test"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@sveltejs/eslint-config": "^8.3.4",
"eslint": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-svelte": "^3.12.5",
"globals": "^17.3.0",
"jiti": "^2.6.1",
"prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0",
"prettier-plugin-tailwindcss": "^0.7.1",
"svelte": "^5.42.3",
"typescript": "^5.9.3",
"typescript-eslint": "^8.56.0",
"vitest": "^4.0.0"
}
}
+2206
View File
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"bootstrap-sha": "a331426c1842c86110e49c651af65b95dc437baa",
"separate-pull-requests": true,
"always-update": true,
"include-v-in-tag": true,
"bump-minor-pre-major": false,
"bump-patch-for-minor-pre-major": false,
"draft": false,
"prerelease": false,
"changelog-type": "github",
"packages": {}
}
+4
View File
@@ -0,0 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["local>immich-app/.github:renovate-config"]
}