Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
dc3106b4a4 | |||
bc0e8c55e3 | |||
124ddc20df | |||
218da3aef8 | |||
e18457bacd | |||
afb85cec88 | |||
4e96ee38ca | |||
89129f3495 | |||
f8fb729c03 | |||
b906e614ba | |||
645faf398e | |||
add5afb17c | |||
ab4ccc3d46 | |||
ed7489f53d | |||
94366907d8 | |||
ef11ac81a3 | |||
73e7c563e0 | |||
cd3da0aa8f |
34
.github/workflows/lint.yml
vendored
Normal file
34
.github/workflows/lint.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
name: Lint Workflow
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
|
||||||
|
- name: Use Cachix
|
||||||
|
uses: cachix/cachix-action@v16
|
||||||
|
with:
|
||||||
|
name: trevstack
|
||||||
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
|
|
||||||
|
- name: Install NPM Packages
|
||||||
|
working-directory: ./client
|
||||||
|
run: npm ci --legacy-peer-deps
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: nix develop --command ts-lint
|
30
.github/workflows/release.yml
vendored
30
.github/workflows/release.yml
vendored
@ -16,32 +16,20 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Nix
|
- name: Install Nix
|
||||||
uses: nixbuild/nix-quick-install-action@v30
|
uses: cachix/install-nix-action@v31
|
||||||
|
|
||||||
- uses: nix-community/cache-nix-action@v6
|
|
||||||
with:
|
with:
|
||||||
# restore and save a cache using this key
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
|
|
||||||
# if there's no cache hit, restore a cache by this prefix
|
- name: Use Cachix
|
||||||
restore-prefixes-first-match: nix-${{ runner.os }}-
|
uses: cachix/cachix-action@v16
|
||||||
# collect garbage until Nix store size (in bytes) is at most this number
|
with:
|
||||||
# before trying to save a new cache
|
name: trevstack
|
||||||
# 1G = 1073741824
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
gc-max-store-size-linux: 1G
|
|
||||||
# do purge caches
|
|
||||||
purge: true
|
|
||||||
# purge all versions of the cache
|
|
||||||
purge-prefixes: nix-${{ runner.os }}-
|
|
||||||
# created more than this number of seconds ago
|
|
||||||
# relative to the start of the `Post Restore and save Nix store` phase
|
|
||||||
purge-created: 0
|
|
||||||
# except any version with the key that is the same as the `primary-key`
|
|
||||||
purge-primary-key: never
|
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: nix develop --command ts-build
|
run: nix develop --command ts-build
|
||||||
|
|
||||||
- name: Create release
|
- name: Create Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
files: |-
|
files: |-
|
||||||
|
@ -4,6 +4,7 @@ pnpm-lock.yaml
|
|||||||
yarn.lock
|
yarn.lock
|
||||||
|
|
||||||
# Build output
|
# Build output
|
||||||
|
build
|
||||||
.svelte-kit
|
.svelte-kit
|
||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
|
29
client/package-lock.json
generated
29
client/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "trevstack",
|
"name": "trevstack",
|
||||||
"version": "0.0.7",
|
"version": "0.0.10",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "trevstack",
|
"name": "trevstack",
|
||||||
"version": "0.0.7",
|
"version": "0.0.10",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@connectrpc/connect": "^2.0.2",
|
"@connectrpc/connect": "^2.0.2",
|
||||||
"@connectrpc/connect-web": "^2.0.2",
|
"@connectrpc/connect-web": "^2.0.2",
|
||||||
@ -32,7 +32,7 @@
|
|||||||
"svelte-sonner": "^0.3.28",
|
"svelte-sonner": "^0.3.28",
|
||||||
"tailwind-merge": "^3.0.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss": "^4.0.13",
|
"tailwindcss": "^4.0.13",
|
||||||
"tw-animate-css": "^1.2.3",
|
"tw-animate-css": "^1.2.4",
|
||||||
"typescript": "^5.8.2",
|
"typescript": "^5.8.2",
|
||||||
"typescript-eslint": "^8.26.1",
|
"typescript-eslint": "^8.26.1",
|
||||||
"vite": "^6.2.2"
|
"vite": "^6.2.2"
|
||||||
@ -6184,9 +6184,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "5.1.4",
|
"version": "5.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz",
|
||||||
"integrity": "sha512-GTFcMIDgR7tqji/LpSY8rtg464VnJl/j6ypoehYnuGb+Y8qZUdtKB8WVCXon0UEZgFDbuUxpIl//6FHLHgXSNA==",
|
"integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -6486,9 +6486,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss/node_modules/nanoid": {
|
"node_modules/postcss/node_modules/nanoid": {
|
||||||
"version": "3.3.10",
|
"version": "3.3.11",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
|
||||||
"integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==",
|
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -7417,11 +7417,14 @@
|
|||||||
"license": "0BSD"
|
"license": "0BSD"
|
||||||
},
|
},
|
||||||
"node_modules/tw-animate-css": {
|
"node_modules/tw-animate-css": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.2.4.tgz",
|
||||||
"integrity": "sha512-G2p4jSSGH21vb/slt1iCAqPL2XmFM2/9LT/I8Z2XHUcHbLGaN7YPx3tg8PkU0QAVgG9hzkAGh0cTrCwFjbZrkg==",
|
"integrity": "sha512-yt+HkJB41NAvOffe4NweJU6fLqAlVx/mBX6XmHRp15kq0JxTtOKaIw8pVSWM1Z+n2nXtyi7cW6C9f0WG/F/QAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/Wombosvideo"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/type-check": {
|
"node_modules/type-check": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "trevstack",
|
"name": "trevstack",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.7",
|
"version": "0.0.10",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
@ -38,7 +38,7 @@
|
|||||||
"svelte-sonner": "^0.3.28",
|
"svelte-sonner": "^0.3.28",
|
||||||
"tailwind-merge": "^3.0.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss": "^4.0.13",
|
"tailwindcss": "^4.0.13",
|
||||||
"tw-animate-css": "^1.2.3",
|
"tw-animate-css": "^1.2.4",
|
||||||
"typescript": "^5.8.2",
|
"typescript": "^5.8.2",
|
||||||
"typescript-eslint": "^8.26.1",
|
"typescript-eslint": "^8.26.1",
|
||||||
"vite": "^6.2.2"
|
"vite": "^6.2.2"
|
||||||
|
33
flake.nix
33
flake.nix
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "trevstack";
|
pname = "trevstack";
|
||||||
version = "0.0.7";
|
version = "0.0.10";
|
||||||
|
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
@ -38,7 +38,7 @@
|
|||||||
pname = "${pname}-client";
|
pname = "${pname}-client";
|
||||||
inherit version;
|
inherit version;
|
||||||
src = gitignore.lib.gitignoreSource ./client;
|
src = gitignore.lib.gitignoreSource ./client;
|
||||||
npmDepsHash = "sha256-AfXM/oPr4b4D9txgwzZFMJ8dXFugOwETkZAN8/SaTkk=";
|
npmDepsHash = "sha256-GQNChIR5kEInghn/W3t8BVnOv5X4pvn/SNCXyFnvLNo=";
|
||||||
nodejs = pkgs.nodejs_22;
|
nodejs = pkgs.nodejs_22;
|
||||||
npmFlags = [ "--legacy-peer-deps" ];
|
npmFlags = [ "--legacy-peer-deps" ];
|
||||||
|
|
||||||
@ -48,6 +48,17 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
server = pkgs.buildGoModule {
|
||||||
|
inherit client pname version;
|
||||||
|
src = gitignore.lib.gitignoreSource ./server;
|
||||||
|
vendorHash = "sha256-sANPwYLGwMcWyMR7Veho81aAMfIQpVzZS5Q9eveR8o8=";
|
||||||
|
env.CGO_ENABLED = 0;
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
cp -r ${client} internal/handlers/client/client
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
@ -174,11 +185,17 @@
|
|||||||
text = ''
|
text = ''
|
||||||
git_root=$(git rev-parse --show-toplevel)
|
git_root=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
|
cd "''${git_root}"
|
||||||
|
echo "Linting protobuf"
|
||||||
|
buf lint
|
||||||
|
|
||||||
cd "''${git_root}/client"
|
cd "''${git_root}/client"
|
||||||
|
echo "Linting client"
|
||||||
npm run check
|
npm run check
|
||||||
npm run lint
|
npm run lint
|
||||||
|
|
||||||
cd "''${git_root}/server"
|
cd "''${git_root}/server"
|
||||||
|
echo "Linting server"
|
||||||
revive -config revive.toml -formatter friendly ./...
|
revive -config revive.toml -formatter friendly ./...
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
@ -215,17 +232,7 @@
|
|||||||
packages = rec {
|
packages = rec {
|
||||||
default = trevstack;
|
default = trevstack;
|
||||||
|
|
||||||
trevstack = pkgs.buildGoModule {
|
trevstack = server;
|
||||||
inherit client pname version;
|
|
||||||
src = gitignore.lib.gitignoreSource ./server;
|
|
||||||
vendorHash = "sha256-sANPwYLGwMcWyMR7Veho81aAMfIQpVzZS5Q9eveR8o8=";
|
|
||||||
env.CGO_ENABLED = 0;
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
cp -r ${client} internal/handlers/client/client
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
trevstack-client = client;
|
trevstack-client = client;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user