Perspectivas
::: advertencia REQUISITOS
:::
Trabajar en grandes proyectos no debería ser una tarea pesada. De hecho, debería ser tan agradable como trabajar en un proyecto que empezaste hace sólo dos semanas. Una de las razones por las que no lo es es porque a medida que el proyecto crece, la experiencia del desarrollador se resiente. Los tiempos de compilación aumentan y las pruebas se vuelven lentas y poco fiables. A menudo es fácil pasar por alto estos problemas hasta que llega un momento en que se vuelven insoportables; sin embargo, en ese punto, es difícil abordarlos. Tuist Insights le proporciona las herramientas para supervisar la salud de su proyecto y mantener un entorno de desarrollo productivo a medida que su proyecto escala.
En otras palabras, Tuist Insights te ayuda a responder a preguntas como:
- ¿Ha aumentado significativamente el tiempo de construcción en la última semana?
- ¿Mis pruebas se han vuelto más lentas? ¿Cuáles?
INFO
Tuist Insights está en fase inicial de desarrollo.
Build
Si bien es probable que tenga algunas métricas para el rendimiento de los flujos de trabajo de CI, es posible que no tenga la misma visibilidad en el entorno de desarrollo local. Sin embargo, los tiempos de compilación locales son uno de los factores más importantes que contribuyen a la experiencia del desarrollador.
Para empezar a realizar un seguimiento de los tiempos de compilación locales, puede aprovechar el comando tuist inspect build añadiéndolo a la post-acción de su esquema:
Post-acción para inspeccionar construcciones
INFO
Recomendamos establecer "Proporcionar configuración de compilación desde" al ejecutable o a tu objetivo de compilación principal para permitir que Tuist rastree la configuración de compilación.
INFO
Si no está utilizando proyectos generados, la acción post-scheme no se ejecuta en caso de que falle la compilación.
Una característica no documentada de Xcode permite ejecutarlo incluso en este caso. Establezca el atributo
runPostActionsOnFailureenYESen su esquemaBuildActionen el archivo correspondienteproject.pbxprojde la siguiente manera:diff<BuildAction buildImplicitDependencies="YES" parallelizeBuildables="YES" + runPostActionsOnFailure="YES">
En caso de que esté utilizando Mise, su script necesitará activar tuist en el entorno post-acción:
sh
# -C ensures that Mise loads the configuration from the Mise configuration
# file in the project's root directory.
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect buildMISE & PROJECT PATHS
La variable de entorno PATH de su entorno no es heredada por la acción posterior al esquema, por lo que tendrá que utilizar la ruta absoluta de Mise, que dependerá de cómo haya instalado Mise. Además, no olvide heredar la configuración de compilación de un objetivo de su proyecto para poder ejecutar Mise desde el directorio apuntado por $SRCROOT.
Ahora se hace un seguimiento de tus construcciones locales siempre que estés conectado a tu cuenta de Tuist. Ahora puedes acceder a tus tiempos de compilación en el panel de Tuist y ver cómo evolucionan con el tiempo:
::: consejo
Para acceder rápidamente al panel de control, ejecute tuist project show --web desde la CLI.
:::
(/images/guides/features/insights/builds-dashboard.png)[Panel de control con información de construcción]
Pruebas
Además de realizar un seguimiento de las compilaciones, también puede supervisar las pruebas. La información sobre las pruebas le ayuda a identificar las pruebas lentas o a comprender rápidamente las ejecuciones CI fallidas.
Para iniciar el seguimiento de sus pruebas, puede aprovechar el comando tuist inspect test añadiéndolo a la post-acción de prueba de su esquema:
Acción posterior a la inspección de las pruebas
En caso de que esté utilizando Mise, su script necesitará activar tuist en el entorno post-acción:
sh
# -C ensures that Mise loads the configuration from the Mise configuration
# file in the project's root directory.
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect testMISE & PROJECT PATHS
La variable de entorno PATH de su entorno no es heredada por la acción posterior al esquema, por lo que tendrá que utilizar la ruta absoluta de Mise, que dependerá de cómo haya instalado Mise. Además, no olvide heredar la configuración de compilación de un objetivo de su proyecto para poder ejecutar Mise desde el directorio apuntado por $SRCROOT.
Ahora puedes hacer un seguimiento de tus pruebas siempre que estés conectado a tu cuenta de Tuist. Puedes acceder a los resultados de tus pruebas en el panel de Tuist y ver cómo evolucionan con el tiempo:
(/images/guides/features/insights/tests-dashboard.png)Panel de control con información de prueba
Aparte de las tendencias generales, también puede profundizar en cada prueba individual, como cuando se depuran fallos o pruebas lentas en el CI:
Proyectos generados
INFO
Los esquemas autogenerados incluyen automáticamente las post-acciones tuist inspect build y tuist inspect test.
Si no le interesa realizar un seguimiento de los insights en sus esquemas autogenerados, desactívelos mediante las opciones de generación
buildInsightsDisabledy
testInsightsDisabled.
Si está utilizando proyectos generados con esquemas personalizados, puede configurar post-acciones tanto para build como para test insights:
swift
let project = Project(
name: "MyProject",
targets: [
// Your targets
],
schemes: [
.scheme(
name: "MyApp",
shared: true,
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
// Build insights: Track build times and performance
.executionAction(
title: "Inspect Build",
scriptText: """
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect build
""",
target: "MyApp"
)
],
// Run build post-actions even if the build fails
runPostActionsOnFailure: true
),
testAction: .testAction(
targets: ["MyAppTests"],
postActions: [
// Test insights: Track test duration and flakiness
.executionAction(
title: "Inspect Test",
scriptText: """
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect test
""",
target: "MyAppTests"
)
]
),
runAction: .runAction(configuration: "Debug")
)
]
)Si no utiliza Mise, sus guiones pueden simplificarse a:
swift
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
.executionAction(
title: "Inspect Build",
scriptText: "tuist inspect build",
target: "MyApp"
)
],
runPostActionsOnFailure: true
),
testAction: .testAction(
targets: ["MyAppTests"],
postActions: [
.executionAction(
title: "Inspect Test",
scriptText: "tuist inspect test"
)
]
)Integración continua (CI)
Para realizar un seguimiento de la creación y las pruebas en CI, deberá asegurarse de que su CI está
autenticado.Además, tendrá que:
- Utilice el comando`tuist xcodebuild` cuando invoque las acciones
xcodebuild. - Añada
-resultBundlePatha su invocaciónxcodebuild.
Cuando xcodebuild construye o prueba su proyecto sin -resultBundlePath, no se generan los archivos necesarios de registro de actividad y de paquete de resultados. Las post-acciones tuist inspect build y tuist inspect test requieren estos archivos para analizar sus construcciones y pruebas.
