ci: add comprehensive GitHub Actions workflow #1
ci.yml
on: push
Lint & Format Check
26s
TypeScript Type Check
25s
Run Tests
47s
Security Audit
10s
Lighthouse Performance Check
0s
CI Status Check
4s
Annotations
16 errors and 1 warning
|
Lint & Format Check
Process completed with exit code 1.
|
|
TypeScript Type Check
Process completed with exit code 2.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L144
Conversion of type '{ target: HTMLElement; isIntersecting: true; intersectionRatio: number; }' to type 'IntersectionObserverEntry' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L139
Conversion of type '{ target: HTMLElement; isIntersecting: false; intersectionRatio: number; }' to type 'IntersectionObserverEntry' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L137
Cannot invoke an object which is possibly 'null'.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L124
Conversion of type '{ target: HTMLElement; isIntersecting: true; intersectionRatio: number; }' to type 'IntersectionObserverEntry' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L122
Cannot invoke an object which is possibly 'null'.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L97
Conversion of type '{ target: HTMLElement; isIntersecting: false; intersectionRatio: number; }' to type 'IntersectionObserverEntry' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L95
Cannot invoke an object which is possibly 'null'.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L73
Conversion of type '{ target: HTMLElement; isIntersecting: true; intersectionRatio: number; }' to type 'IntersectionObserverEntry' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
|
TypeScript Type Check:
tests/shared/hooks/useScrollSpy.test.tsx#L71
Cannot invoke an object which is possibly 'null'.
|
|
Run Tests
Process completed with exit code 1.
|
|
tests/features/hero/Hero.test.tsx > Hero Section > Rendering > should have proper heading hierarchy:
tests/features/hero/Hero.test.tsx#L24
TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name `/desarrollo cosas/i`
Here are the accessible roles:
paragraph:
Name "":
<p
class="text-sm md:text-base text-accent font-medium"
/>
Name "":
<p
class="text-base md:text-lg text-foreground-secondary"
/>
Name "":
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-slide-up [animation-delay:200ms]"
/>
--------------------------------------------------
heading:
Name "Ángel Hidalgo Barreiro":
<h1
class="text-4xl md:text-6xl lg:text-7xl font-bold text-foreground"
/>
Name "Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony":
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
/>
--------------------------------------------------
button:
Name "Ver proyectos →":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-accent text-background hover:bg-accent-hover px-8 py-4 text-lg"
data-scroll-to="projects"
/>
Name "📄 Descargar CV":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-2 border-accent text-accent hover:bg-accent hover:text-background px-8 py-4 text-lg"
/>
Name "Contactar":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-transparent text-foreground hover:bg-background-secondary px-8 py-4 text-lg"
/>
--------------------------------------------------
link:
Name "GitHub":
<a
aria-label="GitHub"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="https://github.com/GMNAPI"
rel="noopener noreferrer"
target="_blank"
/>
Name "LinkedIn":
<a
aria-label="LinkedIn"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="https://www.linkedin.com/in/angel-hidalgo-barreiro"
rel="noopener noreferrer"
target="_blank"
/>
Name "Email":
<a
aria-label="Email"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="mailto:angel.hidalgo@example.com"
/>
--------------------------------------------------
Ignored nodes: comments, script, style
<body>
<div>
<section
class="min-h-screen flex items-center justify-center px-6 py-20 animate-fade-in"
id="hero"
>
<div
class="max-w-5xl mx-auto"
>
<div
class="space-y-8 md:space-y-10"
>
<div
class="space-y-3 animate-slide-up"
>
<p
class="text-sm md:text-base text-accent font-medium"
>
👋 Hola, soy
</p>
<h1
class="text-4xl md:text-6xl lg:text-7xl font-bold text-foreground"
>
Ángel Hidalgo Barreiro
</h1>
<p
class="text-base md:text-lg text-foreground-secondary"
>
📍
Barcelona
,
España
</p>
</div>
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
>
Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony
</h2>
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-sli
|
|
tests/features/hero/Hero.test.tsx > Hero Section > Rendering > should render subtitle/description:
tests/features/hero/Hero.test.tsx#L14
TestingLibraryElementError: Found multiple elements with the text: /desarrollador/i
Here are the matching elements:
Ignored nodes: comments, script, style
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
>
Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony
</h2>
Ignored nodes: comments, script, style
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-slide-up [animation-delay:200ms]"
>
Desarrollador full-stack con amplia experiencia en construcción de SaaS, microservicios y arquitecturas escalables. Especializado en modernización de sistemas legacy, implementación de Clean Architecture y DevOps. Apasionado por crear soluciones técnicas robustas que resuelvan problemas reales de negocio.
</p>
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).
Ignored nodes: comments, script, style
<body>
<div>
<section
class="min-h-screen flex items-center justify-center px-6 py-20 animate-fade-in"
id="hero"
>
<div
class="max-w-5xl mx-auto"
>
<div
class="space-y-8 md:space-y-10"
>
<div
class="space-y-3 animate-slide-up"
>
<p
class="text-sm md:text-base text-accent font-medium"
>
👋 Hola, soy
</p>
<h1
class="text-4xl md:text-6xl lg:text-7xl font-bold text-foreground"
>
Ángel Hidalgo Barreiro
</h1>
<p
class="text-base md:text-lg text-foreground-secondary"
>
📍
Barcelona
,
España
</p>
</div>
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
>
Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony
</h2>
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-slide-up [animation-delay:200ms]"
>
Desarrollador full-stack con amplia experiencia en construcción de SaaS, microservicios y arquitecturas escalables. Especializado en modernización de sistemas legacy, implementación de Clean Architecture y DevOps. Apasionado por crear soluciones técnicas robustas que resuelvan problemas reales de negocio.
</p>
<div
class="inline-flex items-center gap-2 px-4 py-2 bg-accent/10 border border-accent/30 rounded-full animate-slide-up [animation-delay:300ms]"
>
<span
class="w-2 h-2 bg-accent rounded-full animate-pulse"
/>
<span
class="text-sm font-medium text-accent"
>
Abierto a nuevas oportunidades
</span>
</div>
<div
class="flex flex-col sm:flex-row gap-4 pt-4 animate-slide-up [animation-delay:400ms]"
>
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-accent text-background hover:bg-accent-hover px-8 py-4 text-lg"
data-scroll-to="projects"
>
Ver proyectos →
</button>
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-2 border-accent text-accent hover:bg-accent hover:text-background px-8 py-4 text-lg"
>
📄 Descargar CV
</button>
<button
cla
|
|
tests/features/hero/Hero.test.tsx > Hero Section > Rendering > should render main heading "Desarrollo cosas":
tests/features/hero/Hero.test.tsx#L9
TestingLibraryElementError: Unable to find an accessible element with the role "heading" and name `/desarrollo cosas/i`
Here are the accessible roles:
paragraph:
Name "":
<p
class="text-sm md:text-base text-accent font-medium"
/>
Name "":
<p
class="text-base md:text-lg text-foreground-secondary"
/>
Name "":
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-slide-up [animation-delay:200ms]"
/>
--------------------------------------------------
heading:
Name "Ángel Hidalgo Barreiro":
<h1
class="text-4xl md:text-6xl lg:text-7xl font-bold text-foreground"
/>
Name "Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony":
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
/>
--------------------------------------------------
button:
Name "Ver proyectos →":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-accent text-background hover:bg-accent-hover px-8 py-4 text-lg"
data-scroll-to="projects"
/>
Name "📄 Descargar CV":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-2 border-accent text-accent hover:bg-accent hover:text-background px-8 py-4 text-lg"
/>
Name "Contactar":
<button
class="inline-flex items-center justify-center rounded-md font-mono font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-transparent text-foreground hover:bg-background-secondary px-8 py-4 text-lg"
/>
--------------------------------------------------
link:
Name "GitHub":
<a
aria-label="GitHub"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="https://github.com/GMNAPI"
rel="noopener noreferrer"
target="_blank"
/>
Name "LinkedIn":
<a
aria-label="LinkedIn"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="https://www.linkedin.com/in/angel-hidalgo-barreiro"
rel="noopener noreferrer"
target="_blank"
/>
Name "Email":
<a
aria-label="Email"
class="text-foreground-secondary hover:text-accent transition-colors duration-200"
href="mailto:angel.hidalgo@example.com"
/>
--------------------------------------------------
Ignored nodes: comments, script, style
<body>
<div>
<section
class="min-h-screen flex items-center justify-center px-6 py-20 animate-fade-in"
id="hero"
>
<div
class="max-w-5xl mx-auto"
>
<div
class="space-y-8 md:space-y-10"
>
<div
class="space-y-3 animate-slide-up"
>
<p
class="text-sm md:text-base text-accent font-medium"
>
👋 Hola, soy
</p>
<h1
class="text-4xl md:text-6xl lg:text-7xl font-bold text-foreground"
>
Ángel Hidalgo Barreiro
</h1>
<p
class="text-base md:text-lg text-foreground-secondary"
>
📍
Barcelona
,
España
</p>
</div>
<h2
class="text-2xl md:text-3xl lg:text-4xl font-bold text-foreground-secondary animate-slide-up [animation-delay:100ms]"
>
Desarrollador de cosas | SaaS | Node.js | React | PHP/Symfony
</h2>
<p
class="text-lg md:text-xl text-foreground-secondary max-w-3xl leading-relaxed animate-sli
|
|
CI Status Check
Process completed with exit code 1.
|
|
Run Tests
Codecov:
Failed to properly upload report: The process '/home/runner/work/_actions/codecov/codecov-action/v4/dist/codecov' failed with exit code 1
|