Skip to content

Commit

Permalink
more
Browse files Browse the repository at this point in the history
  • Loading branch information
yegor256 committed Apr 2, 2024
1 parent 93c76b6 commit 03796c5
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 7 deletions.
42 changes: 36 additions & 6 deletions 06-integrating/06-integrating.tex
Original file line number Diff line number Diff line change
Expand Up @@ -43,21 +43,51 @@
\pitch{\includegraphics[width=.75\linewidth]{gha-growth.png}
\source{golzadeh2022rise}}

\thought{Use fixed versions of dependencies}

\thought{Use build matrix, with fixed versions}

\pitch{
\begin{multicols}{2}
\includegraphics[width=.9\linewidth]{matrix.png}
\par\columnbreak\par
``A matrix strategy lets you use variables in a single job definition to automatically create multiple job runs that are based on the \ul{combinations} of the variables. For example, you can use a matrix strategy to test your code in multiple versions of a language or on multiple operating systems.''
\par
--- \href{https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs}{GitHub}
\end{multicols}}

\qte
[Moritz Beller]
{moritz-beller}
{The use of multiple integration environments leads to 10\% \ul{more failures} being caught at build time.}
{beller2017oops}

\pitch{
\begin{multicols}{2}
\includegraphics[width=.9\linewidth]{xembly-matrix.png}
\par
{\small GitHub Actions in \href{https://github.com/yegor256/xembly}{yegor256/xembly}\par}
\par\columnbreak\par
``One might argue that it therefore only makes sense to do continuous integration in several environments when their execution leads to \ul{different results}, capturing errors that would not have been caught with one single environment.''
\source{beller2017oops}
\end{multicols}}

\thought{Provide \ff{Dockerfile}}

\thought{Be aware of flaky tests}

\thought{Use fixed versions}
\qte
[Thomas Durieux]
{thomas-durieux}
{We observe that developers restart at least 1.72\% of builds, amounting to 56,522 restarted builds in our Travis CI dataset. We observe that more \ul{mature} and more \ul{complex} projects are more likely to include restarted builds. The restarted builds are mostly builds that are initially failing due to a \ul{test}, \ul{network problem}, or a Travis CI \ul{limitations} such as execution timeout.}
{durieux2020empirical}

\thought{Enable renovate or dependabot}
\thought{Enable @renovate or @dependabot}

\thought{Split tests on fast and slow}
\thought[bugayenko2023blog0822]{Discriminate tests as fast and slow}

\thought{Use caching in GitHub Action}

\thought{Implement your own GitHub Actions}

% G. Gousios, A. Zaidman, M.-A. Storey, and A. van Deursen, “Work Practices and Challenges in Pull-based Development: The Integrator’s Perspective,” in Proceedings of the 37th International Conference on Software Engineering (ICSE’15), 2015, pp. 358–368.
% Gousios et al. [18] determine that 75% of projects that use PRs also use CI.

\end{document}
Binary file added 06-integrating/matrix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 06-integrating/xembly-matrix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion aspell.en.pws
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,5 @@ shellcheck
markdownlint
hadolint
bibcop
sexualized
sexualized
dependabot
Binary file added faces/moritz-beller.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added faces/thomas-durieux.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions main.bib
Original file line number Diff line number Diff line change
Expand Up @@ -684,3 +684,31 @@ @inproceedings{golzadeh2022rise
year={2022},
organization={IEEE}
}

@inproceedings{durieux2020empirical,
title={{Empirical Study of Restarted and Flaky Builds on Travis CI}},
author={Durieux, Thomas and Le Goues, Claire and Hilton, Michael and Abreu, Rui},
booktitle={{Proceedings of the 17th International Conference on Mining Software Repositories}},
pages={254--264},
year={2020},
doi={10.1145/3379597.3387460}
}

@misc{bugayenko2023blog0822,
author = {Bugayenko, Yegor},
title = {{Fast Tests Help Humans, Deep Tests Help Servers}},
howpublished = {\url{https://www.yegor256.com/230822.html}},
year = {2023},
month = {August},
note = {[Online; accessed 05-03-2024]}
}

@inproceedings{beller2017oops,
title={{Oops, My Tests Broke the Build: An Explorative Analysis of Travis CI with GitHub}},
author={Beller, Moritz and Gousios, Georgios and Zaidman, Andy},
booktitle={{Proceedings of the 14th International Conference on Mining Software Repositories (MSR)}},
pages={356--367},
year={2017},
organization={IEEE},
doi={10.1109/MSR.2017.62}
}

0 comments on commit 03796c5

Please sign in to comment.