fix build
Main daploy / deploy (push) Failing after 9s

This commit is contained in:
2024-11-21 08:46:06 +02:00
parent 0b2bbcb1b2
commit 3bba6a5007
14 changed files with 21 additions and 8214 deletions
+1 -2
View File
@@ -20,7 +20,6 @@ jobs:
node-version: '22' node-version: '22'
- name: Clean install dependencies and build - name: Clean install dependencies and build
run: | run: |
cd apps/frontend
npm ci npm ci
npm run build-only -- --emptyOutDir --outDir /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}/ npm run build-only --workspace=apps/frontend -- --emptyOutDir --outDir /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}/
mv /www/hereconnect.condev.ru/current /www/hereconnect.condev.ru/old && mv /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}} /www/hereconnect.condev.ru/current && rm -rf /www/hereconnect.condev.ru/old mv /www/hereconnect.condev.ru/current /www/hereconnect.condev.ru/old && mv /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}} /www/hereconnect.condev.ru/current && rm -rf /www/hereconnect.condev.ru/old
+4
View File
@@ -2,6 +2,10 @@
Этот репозиторий содержит код для платформы, предоставляющей возможность создания и использования QR-кодов для взаимодействия между пользователями. Репозиторий организован как монорепозиторий для упрощения управления проектом. Этот репозиторий содержит код для платформы, предоставляющей возможность создания и использования QR-кодов для взаимодействия между пользователями. Репозиторий организован как монорепозиторий для упрощения управления проектом.
# Тестовый стенд:
[https://hereconnect.condev.ru/](https://hereconnect.condev.ru/) автоматически собирается с ветки main
## Структура репозитория ## Структура репозитория
```plaintext ```plaintext
-3
View File
@@ -62,6 +62,3 @@ npm run test:e2e -- --debug
```sh ```sh
npm run lint npm run lint
``` ```
# Demo
Open [https://hereconnect.condev.ru/](https://hereconnect.condev.ru/) to see latest build from main branch
-22
View File
@@ -9,47 +9,25 @@ declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
Button: typeof import('primevue/button')['default'] Button: typeof import('primevue/button')['default']
Card: typeof import('primevue/card')['default'] Card: typeof import('primevue/card')['default']
Chat: typeof import('./src/components/ChatComponent.vue')['default']
ChatComponent: typeof import('./src/components/ChatComponent.vue')['default'] ChatComponent: typeof import('./src/components/ChatComponent.vue')['default']
Checkbox: typeof import('primevue/checkbox')['default'] Checkbox: typeof import('primevue/checkbox')['default']
ContactInfo: typeof import('./src/components/read/ReadContactInfo.vue')['default']
CreateActionsSection: typeof import('./src/components/create/CreateActionsSection.vue')['default'] CreateActionsSection: typeof import('./src/components/create/CreateActionsSection.vue')['default']
CreateDeliverySection: typeof import('./src/components/create/CreateMessageDeliveryMethodSection.vue')['default']
CreateMessageDeliveryMethodSection: typeof import('./src/components/create/CreateMessageDeliveryMethodSection.vue')['default'] CreateMessageDeliveryMethodSection: typeof import('./src/components/create/CreateMessageDeliveryMethodSection.vue')['default']
CreateMessagesSection: typeof import('./src/components/create/CreatePredefinedMessagesSection.vue')['default']
CreateNameSection: typeof import('./src/components/create/CreateNameSection.vue')['default']
CreatePlacementSection: typeof import('./src/components/create/CreatePlacementSection.vue')['default'] CreatePlacementSection: typeof import('./src/components/create/CreatePlacementSection.vue')['default']
CreatePredefinedMessagesSection: typeof import('./src/components/create/CreatePredefinedMessagesSection.vue')['default'] CreatePredefinedMessagesSection: typeof import('./src/components/create/CreatePredefinedMessagesSection.vue')['default']
CreateReadySection: typeof import('./src/components/create/CreateReadySection.vue')['default']
CreateSection: typeof import('./src/components/create/CreateSection.vue')['default'] CreateSection: typeof import('./src/components/create/CreateSection.vue')['default']
CreateSectionManager: typeof import('./src/components/create/CreateSectionManager.vue')['default'] CreateSectionManager: typeof import('./src/components/create/CreateSectionManager.vue')['default']
CreateSummarySection: typeof import('./src/components/create/CreateSummarySection.vue')['default'] CreateSummarySection: typeof import('./src/components/create/CreateSummarySection.vue')['default']
DownloadImageButton: typeof import('./src/components/manage/DownloadImageButton.vue')['default'] DownloadImageButton: typeof import('./src/components/manage/DownloadImageButton.vue')['default']
DownloadPng: typeof import('./src/components/manage/DownloadImageButton.vue')['default']
Dropdown: typeof import('primevue/dropdown')['default']
ExamplesSection: typeof import('./src/components/TheWelcome/ExamplesSection.vue')['default'] ExamplesSection: typeof import('./src/components/TheWelcome/ExamplesSection.vue')['default']
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default']
IconDocumentation: typeof import('./src/components/icons/IconDocumentation.vue')['default']
IconEcosystem: typeof import('./src/components/icons/IconEcosystem.vue')['default']
IconSupport: typeof import('./src/components/icons/IconSupport.vue')['default']
IconTooling: typeof import('./src/components/icons/IconTooling.vue')['default']
InputText: typeof import('primevue/inputtext')['default'] InputText: typeof import('primevue/inputtext')['default']
ManagePlacementInstructions: typeof import('./src/components/manage/ManagePlacementInstructions.vue')['default'] ManagePlacementInstructions: typeof import('./src/components/manage/ManagePlacementInstructions.vue')['default']
MessageSender: typeof import('./src/components/read/ReadMessageSender.vue')['default']
PlacementInstructions: typeof import('./src/components/manage/ManagePlacementInstructions.vue')['default']
QRCodeReadySection: typeof import('./src/components/create/CreateReadySection.vue')['default']
QueryRender: typeof import('./src/components/QueryRender.vue')['default'] QueryRender: typeof import('./src/components/QueryRender.vue')['default']
RadioButton: typeof import('primevue/radiobutton')['default'] RadioButton: typeof import('primevue/radiobutton')['default']
ReadContactInfo: typeof import('./src/components/read/ReadContactInfo.vue')['default'] ReadContactInfo: typeof import('./src/components/read/ReadContactInfo.vue')['default']
ReadMessageSender: typeof import('./src/components/read/ReadMessageSender.vue')['default'] ReadMessageSender: typeof import('./src/components/read/ReadMessageSender.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView'] RouterView: typeof import('vue-router')['RouterView']
Select: typeof import('primevue/select')['default']
SelectActions: typeof import('./src/components/create/SelectActions.vue')['default']
SelecteActions: typeof import('./src/components/create/SelecteActions.vue')['default']
SelectPlacement: typeof import('./src/components/create/SelectPlacement.vue')['default']
TheWelcome: typeof import('./src/components/TheWelcome/TheWelcome.vue')['default'] TheWelcome: typeof import('./src/components/TheWelcome/TheWelcome.vue')['default']
WelcomeItem: typeof import('./src/components/WelcomeItem.vue')['default']
} }
} }
-8167
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -14,6 +14,7 @@ const { data, error, refetch, isSuccess, isError, isLoading } = query
<slot v-if="isSuccess" name="default" :data="data! as R" /> <slot v-if="isSuccess" name="default" :data="data! as R" />
<slot v-else-if="isLoading" name="loading"><p class="text-gray-500">Загрузка данных...</p></slot> <slot v-else-if="isLoading" name="loading"><p class="text-gray-500">Загрузка данных...</p></slot>
<slot v-else-if="isError" name="error" :error="error as E" :reload="refetch"> <slot v-else-if="isError" name="error" :error="error as E" :reload="refetch">
Ошибка загрузки данных: {{ error && 'message' in error ? error.message : error }} Ошибка загрузки данных:
{{ error && typeof error === 'object' && 'message' in error ? error.message : error }}
</slot> </slot>
</template> </template>
@@ -1,11 +0,0 @@
import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import HelloWorld from '../HelloWorld.vue'
describe('HelloWorld', () => {
it('renders properly', () => {
const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } })
expect(wrapper.text()).toContain('Hello Vitest')
})
})
@@ -29,7 +29,7 @@ import { type QRCodeDocument } from '@/types/DBDocumentTypes'
import { deliveryOptions } from '@/constants/deliveryOptions' import { deliveryOptions } from '@/constants/deliveryOptions'
const emit = defineEmits(['nextStep']) const emit = defineEmits(['nextStep'])
const model = defineModel<QRCodeDocument['messageDeliveryMethod']>() const model = defineModel<null | QRCodeDocument['messageDeliveryMethod']>()
// Локальное состояние для уведомления // Локальное состояние для уведомления
const telegramNotice = ref(false) const telegramNotice = ref(false)
@@ -19,7 +19,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { qrCodePlacements } from '@/constants/qrCodePlacements' import { qrCodePlacements } from '@/constants/qrCodePlacements'
const selectedPlacement = defineModel<string>() import type { QRCodeDocument } from '@/types/DBDocumentTypes'
const selectedPlacement = defineModel<null | QRCodeDocument['placement']>()
defineEmits(['nextStep']) defineEmits(['nextStep'])
</script> </script>
@@ -35,7 +35,7 @@ import { type QRCodeDocument } from '@/types/DBDocumentTypes'
import { defaultMessages } from '@/constants/defaultMessages' import { defaultMessages } from '@/constants/defaultMessages'
// Пропсы // Пропсы
const props = defineProps<{ placement: QRCodeDocument['placement'] }>() const props = defineProps<{ placement: null | QRCodeDocument['placement'] }>()
const messagesRef = useTemplateRef<HTMLDivElement[]>('messagesRef') const messagesRef = useTemplateRef<HTMLDivElement[]>('messagesRef')
// Локальное хранилище сообщений // Локальное хранилище сообщений
@@ -55,7 +55,7 @@ watch(
messages.value.length === 0 || messages.value.length === 0 ||
JSON.stringify(messages.value) === JSON.stringify(prevDefaultMessages) JSON.stringify(messages.value) === JSON.stringify(prevDefaultMessages)
if (isMessagesDefault) { if (isMessagesDefault) {
messages.value = [...(defaultMessages[newPlacement] || [])] messages.value = [...(defaultMessages[newPlacement!] || [])]
} }
}, },
{ immediate: true }, { immediate: true },
@@ -16,7 +16,11 @@ watch(
() => sectionRef.value && props.isNextActiveSection, () => sectionRef.value && props.isNextActiveSection,
(isNextActiveSection) => { (isNextActiveSection) => {
if (isNextActiveSection) { if (isNextActiveSection) {
sectionRef.value?.querySelector('input[type="text"]')?.focus() const input = sectionRef.value?.querySelector('input[type="text"]')
if (input instanceof HTMLInputElement) {
input.focus()
}
sectionRef.value?.scrollIntoView({ behavior: 'smooth' }) sectionRef.value?.scrollIntoView({ behavior: 'smooth' })
} }
}, },
+1 -1
View File
@@ -20,7 +20,7 @@
</template> </template>
<template #messages> <template #messages>
<CreatePredefinedMessagesSection :placement="placement" v-model="messages" /> <CreatePredefinedMessagesSection :placement v-model="messages" />
</template> </template>
<template #summary> <template #summary>
+2 -1
View File
@@ -1,7 +1,8 @@
{ {
"extends": "@vue/tsconfig/tsconfig.dom.json", "extends": "@vue/tsconfig/tsconfig.dom.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"], "include": ["./components.d.ts", "env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": ["src/**/__tests__/*"], "exclude": ["src/**/__tests__/*"],
"files": ["./components.d.ts"],
"compilerOptions": { "compilerOptions": {
"composite": true, "composite": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"files": ["./components.d.ts"], "files": [],
"references": [ "references": [
{ {
"path": "./tsconfig.node.json" "path": "./tsconfig.node.json"