Compare commits
43 Commits
76f0ec74b5
...
v0.2.7
| Author | SHA1 | Date | |
|---|---|---|---|
| a4bd6705b6 | |||
| 723048c72a | |||
| 06ea0cd488 | |||
| 007d3ddda7 | |||
| 33cdaebada | |||
| 9650ea63fc | |||
| db59b85bd2 | |||
| 3f6f3b739e | |||
| b33a896117 | |||
| 01ae1b5011 | |||
| 0ac69610f2 | |||
| c4489b58c9 | |||
| c19bef73e0 | |||
| c573d2277a | |||
| 3006a82a0f | |||
| a68aa78ae1 | |||
| ba9f51bd5e | |||
| 89a3eac2b9 | |||
| 01de23a036 | |||
| aef93ef821 | |||
| 72f46df4d1 | |||
| 50c56e87ff | |||
| a7d65f0e3c | |||
| 649b49a732 | |||
| b887b69997 | |||
| 687a2958c0 | |||
| a7fe94abec | |||
| adb539350f | |||
| d870b7c1f1 | |||
| edd5a69cd4 | |||
| 6343f1de4d | |||
| 3f581ea8e9 | |||
| 10bfcf0727 | |||
| 6b5383ba24 | |||
| 6b5d669f64 | |||
| 40d66d356b | |||
| c665c19cf3 | |||
| b05a7324d6 | |||
| e8cbf6e146 | |||
| 472fa8d907 | |||
| ddc43e4b42 | |||
| 8d02eb380d | |||
| 4c70dce568 |
@@ -2,16 +2,15 @@ name: Deploy
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
|
||||||
- release
|
|
||||||
# tags:
|
# tags:
|
||||||
# - "v[0-9]+.[0-9]+.[0-9]+"
|
# - "v[0-9]+.[0-9]+.[0-9]+"
|
||||||
paths:
|
|
||||||
- ".gitea/workflows/deploy-client.yml"
|
# paths:
|
||||||
- "client/**"
|
# - ".gitea/workflows/deploy-client.yml"
|
||||||
|
# - "client/**"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish-web:
|
publish-windows:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -27,48 +26,57 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: docker build -t chad-client ./client --build-arg COMMIT_SHA=${{ gitea.sha }} --build-arg API_BASE_URL=${{ vars.API_BASE_URL }}
|
|
||||||
|
|
||||||
- name: Stop old container
|
|
||||||
run: docker rm -f chad-client || true
|
|
||||||
|
|
||||||
- name: Run
|
|
||||||
run: |
|
run: |
|
||||||
docker run -d \
|
docker build \
|
||||||
--name chad-client \
|
-t chad-client-windows-builder \
|
||||||
--network traefik \
|
-f ./client/Dockerfile.windows \
|
||||||
--label "traefik.enable=true" \
|
./client \
|
||||||
--label "traefik.http.routers.chad-client.rule=Host(\`chad.koptilnya.xyz\`)" \
|
--build-arg COMMIT_SHA=${{ gitea.sha }} \
|
||||||
--label "traefik.http.routers.chad-client.entrypoints=websecure" \
|
--build-arg API_BASE_URL=${{ vars.API_BASE_URL }} \
|
||||||
--label "traefik.http.routers.chad-client.tls.certresolver=myresolver" \
|
--build-arg TAURI_SIGNING_PRIVATE_KEY=${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||||
--label "traefik.http.services.chad-client.loadbalancer.server.port=80" \
|
|
||||||
chad-client:latest
|
|
||||||
|
|
||||||
publish-tauri:
|
docker create --name chad-client-windows-container chad-client-windows-builder
|
||||||
runs-on: windows-latest
|
mkdir -p artifacts
|
||||||
steps:
|
docker cp chad-client-windows-container:/artifacts artifacts/
|
||||||
- uses: actions/checkout@v4
|
docker rm chad-client-windows-container
|
||||||
|
ls -la artifacts
|
||||||
|
|
||||||
- name: setup node
|
- name: Publish
|
||||||
uses: actions/setup-node@v4
|
uses: akkuman/gitea-release-action@v1
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
files: |
|
||||||
|
artifacts/**
|
||||||
|
draft: true
|
||||||
|
|
||||||
- name: install Rust stable
|
# publish-web:
|
||||||
uses: dtolnay/rust-toolchain@stable
|
# runs-on: ubuntu-latest
|
||||||
|
|
||||||
- name: install frontend dependencies
|
# steps:
|
||||||
run: yarn install
|
# - name: Keyscan
|
||||||
|
# run: |
|
||||||
|
# ssh-keyscan git.koptilnya.xyz >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
- uses: tauri-apps/tauri-action@v1
|
# - name: Checkout
|
||||||
env:
|
# uses: actions/checkout@v4
|
||||||
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
# with:
|
||||||
with:
|
# ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
tagName: app-v__VERSION__
|
# ssh-strict: false
|
||||||
releaseName: "App v__VERSION__"
|
# persist-credentials: false
|
||||||
releaseBody: "See the assets to download this version and install."
|
|
||||||
releaseDraft: true
|
# - name: Build
|
||||||
projectPath: "./client"
|
# run: docker build -t chad-client -f ./client/Dockerfile.web ./client --build-arg COMMIT_SHA=${{ gitea.sha }} --build-arg API_BASE_URL=${{ vars.API_BASE_URL }}
|
||||||
githubBaseUrl: "https://git.koptilnya.xyz/api/v1"
|
|
||||||
isGitea: true
|
# - name: Stop old container
|
||||||
prerelease: false
|
# run: docker rm -f chad-client || true
|
||||||
|
|
||||||
|
# - name: Run
|
||||||
|
# run: |
|
||||||
|
# docker run -d \
|
||||||
|
# --name chad-client \
|
||||||
|
# --network traefik \
|
||||||
|
# --label "traefik.enable=true" \
|
||||||
|
# --label "traefik.http.routers.chad-client.rule=Host(\`chad.koptilnya.xyz\`)" \
|
||||||
|
# --label "traefik.http.routers.chad-client.entrypoints=websecure" \
|
||||||
|
# --label "traefik.http.routers.chad-client.tls.certresolver=myresolver" \
|
||||||
|
# --label "traefik.http.services.chad-client.loadbalancer.server.port=80" \
|
||||||
|
# chad-client:latest
|
||||||
|
|||||||
2
client/.gitattributes
vendored
Normal file
2
client/.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/.yarn/releases/** binary
|
||||||
|
/.yarn/plugins/** binary
|
||||||
3
client/.gitignore
vendored
3
client/.gitignore
vendored
@@ -23,6 +23,7 @@ logs
|
|||||||
.env.*
|
.env.*
|
||||||
!.env.example
|
!.env.example
|
||||||
|
|
||||||
|
.pnp.*
|
||||||
.yarn/*
|
.yarn/*
|
||||||
!.yarn/patches
|
!.yarn/patches
|
||||||
!.yarn/plugins
|
!.yarn/plugins
|
||||||
@@ -32,3 +33,5 @@ logs
|
|||||||
|
|
||||||
scripts/release.ps1
|
scripts/release.ps1
|
||||||
.tauri
|
.tauri
|
||||||
|
|
||||||
|
updater.json
|
||||||
|
|||||||
Binary file not shown.
942
client/.yarn/releases/yarn-4.12.0.cjs
vendored
Normal file
942
client/.yarn/releases/yarn-4.12.0.cjs
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1,3 @@
|
|||||||
nodeLinker: node-modules
|
nodeLinker: node-modules
|
||||||
|
|
||||||
|
yarnPath: .yarn/releases/yarn-4.12.0.cjs
|
||||||
|
|||||||
48
client/Dockerfile.windows
Normal file
48
client/Dockerfile.windows
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# === Build ===
|
||||||
|
FROM node:lts AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# RUN corepack enable yarn && yarn set version stable
|
||||||
|
|
||||||
|
COPY package.json yarn.lock .yarnrc.yml ./
|
||||||
|
COPY .yarn ./.yarn
|
||||||
|
|
||||||
|
RUN yarn install --immutable
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
ARG COMMIT_SHA=unknown
|
||||||
|
ARG API_BASE_URL
|
||||||
|
ARG TAURI_SIGNING_PRIVATE_KEY
|
||||||
|
|
||||||
|
ENV COMMIT_SHA=$COMMIT_SHA \
|
||||||
|
API_BASE_URL=$API_BASE_URL \
|
||||||
|
TAURI_SIGNING_PRIVATE_KEY=$TAURI_SIGNING_PRIVATE_KEY \
|
||||||
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD=
|
||||||
|
|
||||||
|
RUN apt update && apt install -y --no-install-recommends \
|
||||||
|
nsis \
|
||||||
|
clang \
|
||||||
|
lld \
|
||||||
|
llvm \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||||
|
|
||||||
|
ENV PATH=/root/.cargo/bin:$PATH
|
||||||
|
|
||||||
|
RUN rustup target add x86_64-pc-windows-msvc
|
||||||
|
|
||||||
|
RUN cargo install --locked cargo-xwin
|
||||||
|
|
||||||
|
RUN yarn tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc
|
||||||
|
|
||||||
|
RUN node scripts/generate-updater.mjs
|
||||||
|
|
||||||
|
# === Artifacts ===
|
||||||
|
FROM scratch AS artifacts
|
||||||
|
|
||||||
|
COPY --from=builder /app/updater.json ./artifacts
|
||||||
|
COPY --from=builder /app/src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/ ./artifacts
|
||||||
|
|
||||||
|
CMD ["true"]
|
||||||
1
client/app/components.d.ts
vendored
1
client/app/components.d.ts
vendored
@@ -13,7 +13,6 @@ declare module 'vue' {
|
|||||||
PrimeButton: typeof import('primevue/button')['default']
|
PrimeButton: typeof import('primevue/button')['default']
|
||||||
PrimeButtonGroup: typeof import('primevue/buttongroup')['default']
|
PrimeButtonGroup: typeof import('primevue/buttongroup')['default']
|
||||||
PrimeCard: typeof import('primevue/card')['default']
|
PrimeCard: typeof import('primevue/card')['default']
|
||||||
PrimeFieldset: typeof import('primevue/fieldset')['default']
|
|
||||||
PrimeFloatLabel: typeof import('primevue/floatlabel')['default']
|
PrimeFloatLabel: typeof import('primevue/floatlabel')['default']
|
||||||
PrimeInputText: typeof import('primevue/inputtext')['default']
|
PrimeInputText: typeof import('primevue/inputtext')['default']
|
||||||
PrimeMenu: typeof import('primevue/menu')['default']
|
PrimeMenu: typeof import('primevue/menu')['default']
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="grid grid-cols-2 h-screen">
|
<div class="grid grid-cols-2 h-screen">
|
||||||
<div class="flex flex-col shadow-xl shadow-surface-950 overflow-y-hidden">
|
<div class="flex flex-col shadow-xl shadow-surface-950 overflow-y-hidden">
|
||||||
<AppHeader title="Сиськи отвалились">
|
<AppHeader title="Шальные сиськи 18+">
|
||||||
<template #right>
|
<template #right>
|
||||||
<PrimeButtonGroup class="ml-auto">
|
<PrimeButtonGroup class="ml-auto">
|
||||||
<PrimeButton
|
<PrimeButton
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"pub_date": "2025-10-19T23:31:56Z",
|
|
||||||
"version": "0.2.4",
|
|
||||||
"platforms": {
|
|
||||||
"windows-x86_64": {
|
|
||||||
"url": "https://git.koptilnya.xyz/opti1337/chad/releases/download/latest/chad_0.2.4_x64-setup.exe",
|
|
||||||
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUMHdwTUN1SnhESjA5ekxpMGNPQURBSWVYekdEb3kxZ2tKVUNyMVRmcG9vckpsT1Fhcm9PTFp4ZVdDdEtvdWVDYWY0bkJBWjZOby9QNkNNWFJUT1VBY0tRZVNXUVl6eVEwPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzYwOTE2NzE1CWZpbGU6Y2hhZF8wLjIuNF94NjQtc2V0dXAuZXhlCitPYjR2QjNxNk9HdjV1WmdnUFFWRWxraDJzUFZrd1p2bGwrcEpaWjEzZExaQUJvWWNjL1VWWFZlVG4yR2hIeDFSNzJTRk1MMDVtdGo4NGE0ckp0bERBPT0K"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notes": ""
|
|
||||||
}
|
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"vue": "^3.5.22",
|
"vue": "^3.5.22",
|
||||||
"vue-router": "^4.5.1"
|
"vue-router": "^4.5.1"
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@4.10.3",
|
"packageManager": "yarn@4.12.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@antfu/eslint-config": "^5.4.1",
|
"@antfu/eslint-config": "^5.4.1",
|
||||||
"@primevue/nuxt-module": "^4.4.0",
|
"@primevue/nuxt-module": "^4.4.0",
|
||||||
|
|||||||
41
client/scripts/generate-updater.mjs
Normal file
41
client/scripts/generate-updater.mjs
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import fs from 'node:fs'
|
||||||
|
import path from 'node:path'
|
||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url)
|
||||||
|
const __dirname = path.dirname(__filename)
|
||||||
|
|
||||||
|
const TAURI_CONF = path.resolve(__dirname, '../src-tauri/tauri.conf.json')
|
||||||
|
const OUTPUT = path.resolve(__dirname, '../updater.json')
|
||||||
|
|
||||||
|
const PLATFORM = 'windows-x86_64'
|
||||||
|
const BASE_URL = 'https://git.koptilnya.xyz/opti1337/chad/releases/download/latest'
|
||||||
|
|
||||||
|
const tauriConfRaw = fs.readFileSync(TAURI_CONF, 'utf8')
|
||||||
|
const tauriConf = JSON.parse(tauriConfRaw)
|
||||||
|
const version = tauriConf.version
|
||||||
|
|
||||||
|
const SIG_FILE = path.resolve(
|
||||||
|
__dirname,
|
||||||
|
`../src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/chad_${version}_x64-setup.exe.sig`,
|
||||||
|
)
|
||||||
|
|
||||||
|
const signature = fs.readFileSync(SIG_FILE, 'utf8').trim()
|
||||||
|
|
||||||
|
const installerName = `chad_${version}_x64-setup.exe`
|
||||||
|
|
||||||
|
const updater = {
|
||||||
|
pub_date: new Date().toISOString(),
|
||||||
|
version,
|
||||||
|
platforms: {
|
||||||
|
[PLATFORM]: {
|
||||||
|
url: `${BASE_URL}/${installerName}`,
|
||||||
|
signature,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
notes: '',
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFileSync(OUTPUT, JSON.stringify(updater, null, 2), 'utf8')
|
||||||
|
|
||||||
|
console.log('updater.json generated')
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||||
"productName": "chad",
|
"productName": "chad",
|
||||||
"version": "0.2.5-rc.2",
|
"version": "0.2.7",
|
||||||
"identifier": "xyz.koptilnya.chad",
|
"identifier": "xyz.koptilnya.chad",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../.output/public",
|
"frontendDist": "../.output/public",
|
||||||
@@ -44,9 +44,9 @@
|
|||||||
},
|
},
|
||||||
"plugins": {
|
"plugins": {
|
||||||
"updater": {
|
"updater": {
|
||||||
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDI3NDM5Q0I4MDI5M0MyRjQKUldUMHdwTUN1SnhESjBoUFpuWkJxRzFqcWJxdTY4UkNvMmUzcHFnZnJtbSs3WmJoUmhxQ3R5bWYK",
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEU3MzkxMzM3RkQ3NTg4QUQKUldTdGlIWDlOeE01NStIak9VbmZTTm9HY2NyNUQrVXB5ZEdIN1BkK2lhYW9zWkNCQnZQSjRmelIK",
|
||||||
"endpoints": [
|
"endpoints": [
|
||||||
"https://git.koptilnya.xyz/opti1337/chad/releases/download/latest/latest.json"
|
"https://git.koptilnya.xyz/opti1337/chad/releases/download/latest/updater.json"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user