ci: Also run MySQL and PG tests when modules have changes in repos or entities (#14170)

This commit is contained in:
Danny Martini
2025-03-25 16:41:48 +01:00
committed by GitHub
parent f5f8abbbec
commit 7fb6eb1488
15 changed files with 21 additions and 20 deletions

View File

@@ -7,6 +7,7 @@ on:
pull_request: pull_request:
paths: paths:
- packages/cli/src/databases/** - packages/cli/src/databases/**
- packages/cli/src/modules/*/database/**
- .github/workflows/ci-postgres-mysql.yml - .github/workflows/ci-postgres-mysql.yml
- .github/docker-compose.yml - .github/docker-compose.yml
pull_request_review: pull_request_review:

View File

@@ -33,9 +33,9 @@ import { WorkflowEntity } from './workflow-entity';
import { WorkflowHistory } from './workflow-history'; import { WorkflowHistory } from './workflow-history';
import { WorkflowStatistics } from './workflow-statistics'; import { WorkflowStatistics } from './workflow-statistics';
import { WorkflowTagMapping } from './workflow-tag-mapping'; import { WorkflowTagMapping } from './workflow-tag-mapping';
import { InsightsByPeriod } from '../../modules/insights/entities/insights-by-period'; import { InsightsByPeriod } from '../../modules/insights/database/entities/insights-by-period';
import { InsightsMetadata } from '../../modules/insights/entities/insights-metadata'; import { InsightsMetadata } from '../../modules/insights/database/entities/insights-metadata';
import { InsightsRaw } from '../../modules/insights/entities/insights-raw'; import { InsightsRaw } from '../../modules/insights/database/entities/insights-raw';
export const entities = { export const entities = {
AnnotationTagEntity, AnnotationTagEntity,

View File

@@ -3,9 +3,9 @@ import { Container } from '@n8n/di';
import { mockInstance } from '@test/mocking'; import { mockInstance } from '@test/mocking';
import * as testDb from '@test-integration/test-db'; import * as testDb from '@test-integration/test-db';
import { TypeToNumber } from '../entities/insights-shared'; import { TypeToNumber } from '../database/entities/insights-shared';
import { InsightsByPeriodRepository } from '../database/repositories/insights-by-period.repository';
import { InsightsController } from '../insights.controller'; import { InsightsController } from '../insights.controller';
import { InsightsByPeriodRepository } from '../repositories/insights-by-period.repository';
// Initialize DB once for all tests // Initialize DB once for all tests
beforeAll(async () => { beforeAll(async () => {

View File

@@ -7,9 +7,9 @@ import type { ExecutionStatus, IRun, WorkflowExecuteMode } from 'n8n-workflow';
import type { Project } from '@/databases/entities/project'; import type { Project } from '@/databases/entities/project';
import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
import type { IWorkflowDb } from '@/interfaces'; import type { IWorkflowDb } from '@/interfaces';
import type { TypeUnit } from '@/modules/insights/entities/insights-shared'; import type { TypeUnit } from '@/modules/insights/database/entities/insights-shared';
import { InsightsMetadataRepository } from '@/modules/insights/repositories/insights-metadata.repository'; import { InsightsMetadataRepository } from '@/modules/insights/database/repositories/insights-metadata.repository';
import { InsightsRawRepository } from '@/modules/insights/repositories/insights-raw.repository'; import { InsightsRawRepository } from '@/modules/insights/database/repositories/insights-raw.repository';
import { createTeamProject } from '@test-integration/db/projects'; import { createTeamProject } from '@test-integration/db/projects';
import { createWorkflow } from '@test-integration/db/workflows'; import { createWorkflow } from '@test-integration/db/workflows';
import * as testDb from '@test-integration/test-db'; import * as testDb from '@test-integration/test-db';
@@ -19,9 +19,9 @@ import {
createRawInsightsEvent, createRawInsightsEvent,
createCompactedInsightsEvent, createCompactedInsightsEvent,
createRawInsightsEvents, createRawInsightsEvents,
} from '../entities/__tests__/db-utils'; } from '../database/entities/__tests__/db-utils';
import { InsightsByPeriodRepository } from '../database/repositories/insights-by-period.repository';
import { InsightsService } from '../insights.service'; import { InsightsService } from '../insights.service';
import { InsightsByPeriodRepository } from '../repositories/insights-by-period.repository';
async function truncateAll() { async function truncateAll() {
const insightsRawRepository = Container.get(InsightsRawRepository); const insightsRawRepository = Container.get(InsightsRawRepository);

View File

@@ -5,12 +5,12 @@ import type { IWorkflowBase } from 'n8n-workflow';
import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
import { InsightsMetadata } from '../../entities/insights-metadata';
import { InsightsRaw } from '../../entities/insights-raw';
import { InsightsByPeriodRepository } from '../../repositories/insights-by-period.repository'; import { InsightsByPeriodRepository } from '../../repositories/insights-by-period.repository';
import { InsightsMetadataRepository } from '../../repositories/insights-metadata.repository'; import { InsightsMetadataRepository } from '../../repositories/insights-metadata.repository';
import { InsightsRawRepository } from '../../repositories/insights-raw.repository'; import { InsightsRawRepository } from '../../repositories/insights-raw.repository';
import { InsightsByPeriod } from '../insights-by-period'; import { InsightsByPeriod } from '../insights-by-period';
import { InsightsMetadata } from '../insights-metadata';
import { InsightsRaw } from '../insights-raw';
async function getWorkflowSharing(workflow: IWorkflowBase) { async function getWorkflowSharing(workflow: IWorkflowBase) {
return await Container.get(SharedWorkflowRepository).find({ return await Container.get(SharedWorkflowRepository).find({

View File

@@ -10,7 +10,7 @@ import {
PeriodUnitToNumber, PeriodUnitToNumber,
TypeToNumber, TypeToNumber,
} from './insights-shared'; } from './insights-shared';
import { datetimeColumnType } from '../../../databases/entities/abstract-entity'; import { datetimeColumnType } from '../../../../databases/entities/abstract-entity';
@Entity() @Entity()
export class InsightsByPeriod extends BaseEntity { export class InsightsByPeriod extends BaseEntity {

View File

@@ -4,7 +4,7 @@ import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from '@n8n/typeorm
import { UnexpectedError } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow';
import { isValidTypeNumber, NumberToType, TypeToNumber } from './insights-shared'; import { isValidTypeNumber, NumberToType, TypeToNumber } from './insights-shared';
import { datetimeColumnType } from '../../../databases/entities/abstract-entity'; import { datetimeColumnType } from '../../../../databases/entities/abstract-entity';
export const { type: dbType } = Container.get(GlobalConfig).database; export const { type: dbType } = Container.get(GlobalConfig).database;

View File

@@ -11,14 +11,14 @@ import {
import { SharedWorkflow } from '@/databases/entities/shared-workflow'; import { SharedWorkflow } from '@/databases/entities/shared-workflow';
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
import { OnShutdown } from '@/decorators/on-shutdown'; import { OnShutdown } from '@/decorators/on-shutdown';
import { InsightsMetadata } from '@/modules/insights/entities/insights-metadata'; import { InsightsMetadata } from '@/modules/insights/database/entities/insights-metadata';
import { InsightsRaw } from '@/modules/insights/entities/insights-raw'; import { InsightsRaw } from '@/modules/insights/database/entities/insights-raw';
import type { TypeUnit } from './entities/insights-shared'; import type { TypeUnit } from './database/entities/insights-shared';
import { NumberToType } from './entities/insights-shared'; import { NumberToType } from './database/entities/insights-shared';
import { InsightsByPeriodRepository } from './database/repositories/insights-by-period.repository';
import { InsightsRawRepository } from './database/repositories/insights-raw.repository';
import { InsightsConfig } from './insights.config'; import { InsightsConfig } from './insights.config';
import { InsightsByPeriodRepository } from './repositories/insights-by-period.repository';
import { InsightsRawRepository } from './repositories/insights-raw.repository';
const config = Container.get(InsightsConfig); const config = Container.get(InsightsConfig);