Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00336deb06 | ||
|
|
fdbafea0e2 | ||
|
|
d8db2a5bc5 | ||
|
|
36842058bc | ||
|
|
ae0bfa28a1 | ||
|
|
ae48b2844d | ||
|
|
9aa1d6b883 | ||
|
|
7f9364c72a | ||
|
|
30eeaf9c93 | ||
|
|
a0d512ec6e | ||
|
|
d39aca16d9 | ||
|
|
fccb25e82f | ||
|
|
0bb378bb09 | ||
|
|
e16a6deab2 | ||
|
|
9fec46a41e |
@@ -52,6 +52,21 @@ platform.'' Source inspection confirmed eight section headings and the new
|
|||||||
chapter's position after the five existing chapters. Complete project
|
chapter's position after the five existing chapters. Complete project
|
||||||
compilation and final layout verification remain pending in Overleaf}.
|
compilation and final layout verification remain pending in Overleaf}.
|
||||||
|
|
||||||
|
\section{Assignment 5 Title and Document History Update}
|
||||||
|
Date: \textit{October 9, 2026};
|
||||||
|
Tool: \textit{OpenAI Codex};
|
||||||
|
Task: \textit{Update the assignment number to 5 and title to ``LaTeX
|
||||||
|
Auto-Compilation with Gitea,'' and summarize Nica Saoi's work across all
|
||||||
|
eight Automated Manual Build sections in the document history};
|
||||||
|
Inputs: \textit{The user's requested title, number, and author attribution,
|
||||||
|
and the existing Automated Manual Build chapter};
|
||||||
|
Output used: \textit{Updated assignment metadata and a new history entry
|
||||||
|
covering all eight section topics while retaining prior history};
|
||||||
|
Human review and corrections: \textit{Review pending};
|
||||||
|
Unresolved assumptions: \textit{The chapter's operational results were
|
||||||
|
summarized from the existing text, not independently reverified during this
|
||||||
|
editorial update}.
|
||||||
|
|
||||||
\section{Linux Commands Assignment Record}
|
\section{Linux Commands Assignment Record}
|
||||||
Scope: \textit{The existing record below covers the earlier Linux Commands formatting work; the separate record for Questions 31--40 documents Vincent Penalosa's AI use.};
|
Scope: \textit{The existing record below covers the earlier Linux Commands formatting work; the separate record for Questions 31--40 documents Vincent Penalosa's AI use.};
|
||||||
|
|
||||||
|
|||||||
@@ -39,8 +39,8 @@
|
|||||||
\definecolor{devopsLightBlue}{RGB}{232,240,247}
|
\definecolor{devopsLightBlue}{RGB}{232,240,247}
|
||||||
|
|
||||||
% Replace these values for each assignment.
|
% Replace these values for each assignment.
|
||||||
\newcommand{\AssignmentTitle}{Domain Names, SSL, and Versioning}
|
\newcommand{\AssignmentTitle}{LaTeX Auto-Compilation with Gitea}
|
||||||
\newcommand{\AssignmentNumber}{\#4}
|
\newcommand{\AssignmentNumber}{\#5}
|
||||||
\newcommand{\DocumentVersion}{1.9-draft}
|
\newcommand{\DocumentVersion}{1.9-draft}
|
||||||
|
|
||||||
% Generated only in the disposable build workspace; never committed.
|
% Generated only in the disposable build workspace; never committed.
|
||||||
|
|||||||
@@ -1,104 +1,272 @@
|
|||||||
\chapter{Automated Manual Build}
|
\chapter{Automated Manual Build}
|
||||||
\ChapterLabel{AutomatedManualBuild}
|
\ChapterLabel{AutomatedManualBuild}
|
||||||
\index{Gitea Actions}\index{runner}\index{build artifact}
|
\index{Gitea Actions}\index{runner}\index{build artifact}\index{LaTeX}\index{continuous integration}
|
||||||
\begin{devopsNote}[Draft: verification incomplete]
|
|
||||||
This chapter addresses course assignment Chapter 3. Its chapter number in
|
\begin{devopsNote}[Automated build verification]
|
||||||
this living manual may differ. Vincent reported a successful local build
|
The team demonstrated push-triggered PDF compilation, downloadable build
|
||||||
of the original manual in an Ubuntu VM on October 9, 2026. The new automated
|
artifacts, and a controlled failure followed by recovery using a self-managed
|
||||||
build script, runner registration, Gitea execution and artifact upload require
|
Gitea Actions runner. The following sections record the observed run results
|
||||||
their own verification. No pending check below is claimed to have passed.
|
and traceable source revisions. Jenkins merge checks are covered separately
|
||||||
|
in Chapter 4.
|
||||||
\end{devopsNote}
|
\end{devopsNote}
|
||||||
|
|
||||||
\section{Source and trigger}
|
\section{Source and trigger}
|
||||||
Source repository: \url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app}.
|
The team maintains the complete buildable LaTeX source, bibliography, figures,
|
||||||
Main source: \texttt{latex-manual/devopsAssignment.tex}.
|
and nonsecret build instructions in the Gitea repository:
|
||||||
Workflow: \texttt{.gitea/workflows/manual.yml}. Configured push branches are
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app}.
|
||||||
\texttt{main}, \texttt{chapter3-build-automation} and \texttt{chapter3-build-test}.
|
The main document is \texttt{latex-manual/devopsAssignment.tex}; this chapter is
|
||||||
HTTPS Git traffic uses public port 443 at the proxy; the handoff reports
|
\texttt{latex-manual/devopsAutomatedManualBuild.tex}. The version-controlled
|
||||||
private Gitea port 3000. The external VM uses the public HTTPS hostname,
|
workflow is \texttt{.gitea/workflows/manual.yml}, and the build program is
|
||||||
not the Droplet's private container DNS. The runner needs no public inbound
|
\texttt{ci/build\_manual.py}.
|
||||||
submission port. \textbf{Pending:} source/workflow commit links, actual push
|
|
||||||
event and run link, verified network diagram and access path.
|
The workflow uses the Git push event on \texttt{main},
|
||||||
|
\texttt{chapter3-build-automation}, and \texttt{chapter3-build-test}. The
|
||||||
|
actual demonstration pushes were made to \texttt{chapter3-build-test}.
|
||||||
|
Gitea Actions run 2 was triggered by a push from \texttt{vincentpenalosa}
|
||||||
|
and succeeded for commit
|
||||||
|
\texttt{9fec46a41ef1dcdffb40d0429e19475ba21af41c}:
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/2}.
|
||||||
|
Run 3 succeeded for the subsequent source commit
|
||||||
|
\texttt{e16a6deab277621f860c8a057a80c9737b5eb4b1}:
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/3}.
|
||||||
|
These runs demonstrate the configured source-push-to-workflow connection.
|
||||||
|
|
||||||
|
Git clients push over HTTPS to the public Gitea hostname on TCP port 443.
|
||||||
|
Caddy terminates TLS and forwards the request to Gitea on private container
|
||||||
|
port 3000. The runner VM reaches the public HTTPS Gitea hostname and does not
|
||||||
|
need a public inbound build, compiler, or management port. The runner checks
|
||||||
|
out source over the network and uploads the artifact through Gitea Actions;
|
||||||
|
no shared filesystem between the VM and Gitea is needed.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.92\linewidth]{png/successful_run_1.png}
|
||||||
|
\caption{October 2026: push-triggered Gitea Actions run 2 on
|
||||||
|
\texttt{chapter3-build-test}, showing a successful job and one artifact.}
|
||||||
|
\label{fig:ch3-push-run2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Runner setup}
|
\section{Runner setup}
|
||||||
Proposed host: Vincent's Ubuntu 22.04.5 LTS VirtualBox VM, x86\_64,
|
The self-managed runner executes on Vincent's separate Ubuntu 22.04.5 LTS
|
||||||
approximately 4 GB allocated RAM and 25 GB virtual disk. These are
|
VirtualBox VM (\texttt{x86\_64}), rather than on the shared DigitalOcean
|
||||||
user-reported observations, not a fresh resource measurement.
|
Droplet hosting Gitea and Jenkins. The handoff records approximately 4 GB of
|
||||||
Proposed repository-scoped runner: Gitea Runner 2.3.0, label
|
allocated memory and a 25 GB virtual disk; these are historical observations,
|
||||||
\texttt{smartpark-latex:host}, capacity one, dedicated unprivileged Linux
|
not current free-resource measurements. The installed Gitea runner version is
|
||||||
account. It uses installed tools directly in the VM and does not use Docker.
|
reported as 2.3.0. Its configured name is \texttt{vincent-ubuntu-manual},
|
||||||
\textbf{Pending:} final owner/location, installed version, online screenshot,
|
with a repository-scoped registration for the SmartPark repository, label
|
||||||
job assignment, resource measurements, reboot/service test and availability
|
\texttt{smartpark-latex:host}, and capacity one. The workflow selects the
|
||||||
agreement for grading. Update this section if Nica hosts the runner instead.
|
label through \texttt{runs-on: smartpark-latex}.
|
||||||
|
|
||||||
|
The runner executes jobs in host mode, using TeX and Python utilities installed
|
||||||
|
on Ubuntu rather than launching Docker job containers. A dedicated unprivileged
|
||||||
|
\texttt{smartpark-runner} Linux account runs the service. The handoff identifies
|
||||||
|
\texttt{smartpark-runner.service}, configuration at
|
||||||
|
\texttt{/etc/smartpark-runner/config.yaml}, and a private runner identity at
|
||||||
|
\texttt{/var/lib/smartpark-runner/.runner}. A supplied service screenshot shows
|
||||||
|
the service active; successful jobs 2 and 3 additionally establish that the
|
||||||
|
runner executed workflow work. The VM must remain running and network-connected
|
||||||
|
to accept new jobs. No reboot-survival or current resource-availability test is
|
||||||
|
claimed without separate evidence.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.92\linewidth]{png/runner_activated.png}
|
||||||
|
\caption{October 2026: Ubuntu service evidence for the separate
|
||||||
|
Gitea Actions runner VM. Service activity is not, by itself, proof of current
|
||||||
|
Gitea online status.}
|
||||||
|
\label{fig:ch3-runner-service}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Reproducible compilation}
|
\section{Reproducible compilation}
|
||||||
Run \texttt{python3 ci/build\_manual.py} from a checkout. The script copies
|
On a clean Git checkout, the documented entry point is
|
||||||
the source into a fresh temporary directory, invokes \texttt{latexmk -pdf}
|
\texttt{python3 ci/build\_manual.py}. This script copies the manual source to
|
||||||
with error stopping and shell escape, generates glossary and index, and
|
a fresh temporary work directory and compiles the main file with
|
||||||
finishes the PDF. BibTeX is coordinated by latexmk. Shell escape permits
|
\texttt{latexmk -pdf}, stopping on LaTeX errors. It supports the document's
|
||||||
minted to invoke Pygments; source and workflow authors must be trusted.
|
\texttt{minted} highlighting with Pygments and shell escape, and coordinates
|
||||||
Output: \texttt{build/manual/SmartPark-Manual.pdf}.
|
bibliography, glossary, index, and repeated LaTeX passes. Source and workflow
|
||||||
Nonzero tool exit status, missing PDF and unresolved reference/citation
|
edit rights must be restricted because enabling shell escape executes helper
|
||||||
summaries fail the build. A previous deliverable is removed before building.
|
programs. The expected deliverables are
|
||||||
\textbf{Pending:} actual command output, successful clean-build log, package
|
\texttt{build/manual/SmartPark-Manual.pdf} and
|
||||||
versions from \texttt{build-info.txt}, and reproduction by another teammate.
|
\texttt{build/manual/build-info.txt}.
|
||||||
|
|
||||||
|
The supplied successful artifact metadata records \texttt{latexmk} 4.76,
|
||||||
|
\texttt{pdfTeX} 1.40.22 (TeX Live 2022/dev/Debian), and Pygments 2.11.2.
|
||||||
|
The handoff also reports \texttt{makeglossaries} 4.49 and packages including
|
||||||
|
\texttt{texlive-latex-extra}, \texttt{texlive-fonts-recommended},
|
||||||
|
\texttt{lmodern}, and \texttt{python3-pygments}. The build script removes old
|
||||||
|
deliverables, checks command exit status and the expected PDF, and treats
|
||||||
|
unresolved reference/citation summaries as errors. Therefore an old PDF
|
||||||
|
cannot silently stand in for a newly successful build. The compiler runs on
|
||||||
|
the runner VM, not in the Gitea application container.
|
||||||
|
|
||||||
|
Run 2's successful \texttt{manual} job took 41 seconds; run 3 also completed
|
||||||
|
successfully. Their run pages and downloadable \texttt{build-info.txt} files
|
||||||
|
provide the logged build context:
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/2}
|
||||||
|
and
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/3}.
|
||||||
|
Run 4 is the controlled negative compilation test, with a failed workflow
|
||||||
|
status. The run 4 screenshot records the negative test status; the job console
|
||||||
|
is the authoritative source for the compiler diagnostic.
|
||||||
|
|
||||||
\section{PDF version traceability}
|
\section{PDF version traceability}
|
||||||
The build identification page retains the human-maintained document version
|
The team maintains the human-readable manual version separately from the
|
||||||
and displays the triggering revision and run number. Local runs display
|
machine-generated build identifier. The documented manual version for these
|
||||||
\texttt{local}; modified local working trees display \texttt{dirty}.
|
runs is \texttt{1.9-draft}. For Gitea Actions builds, the identification page
|
||||||
The generated metadata exists only in the temporary build directory.
|
adds the triggering commit's short revision and the workflow run number.
|
||||||
The workflow never commits or pushes generated metadata.
|
The metadata is generated during the temporary build and is not pushed back
|
||||||
\textbf{Pending:} screenshot of a real Actions PDF and its matching commit
|
to the branch, avoiding a self-triggering push/build loop. Local builds use
|
||||||
and run. Local identifiers are not Gitea evidence.
|
\texttt{local}; local modified trees can display \texttt{dirty}, so a local
|
||||||
|
build is not substituted for Actions evidence.
|
||||||
|
|
||||||
|
The downloaded PDF for run 2 visibly identifies
|
||||||
|
\texttt{1.9-draft+build.2.9fec46a41ef1}, source revision
|
||||||
|
\texttt{9fec46a41ef1}, and workflow run \texttt{2}. The downloaded PDF for
|
||||||
|
run 3 displays \texttt{1.9-draft+build.3.e16a6deab277}, source revision
|
||||||
|
\texttt{e16a6deab277}, and workflow run \texttt{3}. The matching full
|
||||||
|
commits are recorded in Section 6. The respective build metadata timestamps
|
||||||
|
are October 10, 2026 at 02:12 UTC and 02:26 UTC. The identifiers printed in the respective downloaded PDFs match the
|
||||||
|
workflow run numbers and source revisions.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.90\linewidth]{png/successful_run_2.png}
|
||||||
|
\caption{Gitea Actions run 3 completing successfully, supporting the second
|
||||||
|
source-change build demonstration.}
|
||||||
|
\label{fig:ch3-run3-success}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Downloadable artifact}
|
\section{Downloadable artifact}
|
||||||
The workflow requests an artifact named with the run number and commit,
|
The workflow names artifacts using the workflow run and triggering source
|
||||||
containing the manual PDF and nonsecret build metadata. It requests 30 days
|
commit. Run 2 uploaded a named downloadable artifact:
|
||||||
retention. This request is not proof of the server's applied retention policy.
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/2}.
|
||||||
\textbf{Pending:} verified artifact upload compatibility, actual retention,
|
Its downloaded ZIP contains \texttt{SmartPark-Manual.pdf} and
|
||||||
run/artifact link, download and visual inspection. Artifacts are not backups.
|
\texttt{build-info.txt}. The 82-page PDF was extracted and opened
|
||||||
|
successfully. Its build identifier is
|
||||||
|
\texttt{1.9-draft+build.2.9fec46a41ef1}, matching run 2 and commit
|
||||||
|
\texttt{9fec46a41ef1dcdffb40d0429e19475ba21af41c}. Run 3 also
|
||||||
|
produced a distinct successful PDF and matching metadata, rather than
|
||||||
|
reusing the previous output.
|
||||||
|
|
||||||
|
A team member obtains an artifact by opening the matching Gitea Actions run,
|
||||||
|
choosing the named entry under Artifacts, downloading and extracting the ZIP,
|
||||||
|
and visually inspecting the PDF and its identification page. The workflow
|
||||||
|
requests a 30-day artifact retention period. The server's actually applied
|
||||||
|
retention policy was not independently verified. Artifacts are downloadable
|
||||||
|
build deliverables, not permanent backups.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.92\linewidth]{png/successful_run_1.png}
|
||||||
|
\caption{October 2026: successful run 2 showing the named downloadable
|
||||||
|
manual artifact in the Gitea Actions interface.}
|
||||||
|
\label{fig:ch3-artifact-run2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Change, failure, and repair evidence}
|
\section{Change, failure, and repair evidence}
|
||||||
\textbf{Pending:} fill the evidence worksheet in
|
The team performed the following source-change and repair sequence on
|
||||||
\texttt{docs/ch3-evidence.md}, then summarize the real results here.
|
\texttt{chapter3-build-test}. Expected results were compared with the
|
||||||
Include two successive source changes producing successful PDFs and a
|
actual Gitea Actions status, with links to each run.
|
||||||
controlled LaTeX syntax error followed by repair on a workflow-covered
|
|
||||||
test branch. Record date, expected and actual result, full commit, run URL,
|
\begin{enumerate}
|
||||||
visible PDF identifier and artifact link. A failed compile must not publish
|
\item \textbf{First successful source change:} run 2, ``Document first manual
|
||||||
a successful PDF. Do not substitute Chapter 4 Jenkins tests for these runs.
|
build demonstration,'' compiled commit
|
||||||
|
\texttt{9fec46a41ef1dcdffb40d0429e19475ba21af41c}, generated the PDF
|
||||||
|
identifier \texttt{1.9-draft+build.2.9fec46a41ef1}, and uploaded one named
|
||||||
|
artifact. Expected: build and artifact succeed; actual: success.
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/2}.
|
||||||
|
|
||||||
|
\item \textbf{Second successful source change:} run 3, ``Document second
|
||||||
|
manual build demonstration,'' compiled the next source change at commit
|
||||||
|
\texttt{e16a6deab277621f860c8a057a80c9737b5eb4b1}. The downloaded PDF
|
||||||
|
identifies \texttt{1.9-draft+build.3.e16a6deab277}. Expected: a different
|
||||||
|
build/PDF tied to this source revision; actual: successful run and matching
|
||||||
|
PDF metadata.
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/3}.
|
||||||
|
|
||||||
|
\item \textbf{Controlled compiler failure:} run 4, ``Demonstrate controlled
|
||||||
|
LaTeX compilation failure,'' used the deliberate undefined command
|
||||||
|
\verb|\SmartParkIntentionalBuildFailure|. Expected: nonzero LaTeX build status
|
||||||
|
and no successfully published PDF. The supplied screenshot confirms failed
|
||||||
|
workflow status and shows no artifact in that view. The run URL links to the associated commit and compiler job log.
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/4}.
|
||||||
|
|
||||||
|
\item \textbf{Repair:} run 5, ``Revert Demonstrate controlled LaTeX compilation
|
||||||
|
failure,'' restored a working document. Expected: successful compile and
|
||||||
|
artifact upload; actual: screenshot shows a successful job and one artifact.
|
||||||
|
The run page identifies the repair revision and downloadable artifact.
|
||||||
|
\url{https://git.137-184-97-250.nip.io/stevens-smartpark/smartpark-app/actions/runs/5}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.88\linewidth]{png/latex_compilation_failure.png}
|
||||||
|
\caption{October 2026: controlled LaTeX compilation failure recorded
|
||||||
|
by Gitea Actions run 4. The matching job log records the compiler failure.}
|
||||||
|
\label{fig:ch3-run4-failure}
|
||||||
|
\end{figure}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.88\linewidth]{png/repaired_build.png}
|
||||||
|
\caption{October 2026: Gitea Actions run 5 succeeding after the
|
||||||
|
controlled error was reverted, with one downloadable artifact.}
|
||||||
|
\label{fig:ch3-run5-repair}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\section{Runner and secret boundary}
|
\section{Runner and secret boundary}
|
||||||
Only reviewed team workflows should reach this runner. No pull-request
|
The Chapter 3 runner uses Vincent's separate Ubuntu VirtualBox VM, not the
|
||||||
event is configured in this draft. Push-only triggers are not complete
|
shared DigitalOcean Droplet. Its configured repository-scoped registration,
|
||||||
access control: restrict who may push or modify workflows, and review other
|
\texttt{smartpark-latex:host} execution label, capacity one, and unprivileged
|
||||||
workflows that can target the runner label. Host jobs share an account and
|
\texttt{smartpark-runner} service account limit the jobs' intended access.
|
||||||
environment and can access that account's runner credentials; this is not
|
Host-mode jobs execute directly as that account and are \emph{not} isolated
|
||||||
isolation between jobs. Use a dedicated VM and unprivileged service account,
|
from each other by disposable Docker containers. Consequently, workflow and
|
||||||
no Docker group, no passwordless sudo, no personal Windows shared folders
|
source changes targeting the runner should be restricted to reviewed team
|
||||||
or SSH keys, and no untrusted jobs. Registration credentials stay outside Git.
|
contributors. A push-only trigger and label do not themselves establish an
|
||||||
\textbf{Pending:} actual edit rights, repository scope, credential storage
|
access-control boundary.
|
||||||
controls and nonsecret configuration links.
|
|
||||||
|
The service configuration resides at
|
||||||
|
\texttt{/etc/smartpark-runner/config.yaml}; the private registration identity
|
||||||
|
resides at \texttt{/var/lib/smartpark-runner/.runner}. Runner registration
|
||||||
|
tokens, personal SSH keys, passwords and repository secrets must not appear
|
||||||
|
in Git, job logs, screenshots, or generated PDFs. The operational Passwords
|
||||||
|
table should contain only ownership and storage hints. No privileged Docker
|
||||||
|
socket access was granted to the Chapter 3 job environment on the shared
|
||||||
|
Droplet; doing so would expose the other Docker-hosted Gitea/Jenkins services
|
||||||
|
to substantial risk. Only outbound HTTPS access to Gitea is required.
|
||||||
|
|
||||||
|
The actual editor/branch permissions should be verified against repository
|
||||||
|
settings; this report does not claim that every policy was technically
|
||||||
|
enforced just because it is recommended. The service evidence is shown in
|
||||||
|
Figure~\ref{fig:ch3-runner-service}; nonsecret configuration lives under
|
||||||
|
\texttt{ci/} in the Gitea repository.
|
||||||
|
|
||||||
\section{Manual quality and controls}
|
\section{Manual quality and controls}
|
||||||
This is a draft addition, not a completed assignment submission. The draft
|
The version-controlled source, reproducible workflow, host-mode runner,
|
||||||
history entry identifies the new chapter; existing Hosts and Passwords
|
compiler checks, visible build identifiers, successful PDF artifacts, and
|
||||||
tables have not been changed by the installer and require review before
|
controlled failure/repair are documented above. The manual version used for
|
||||||
submission. Add the actual runner host, owner, role, outbound access and
|
the demonstrated builds is \texttt{1.9-draft}. The final released manual version is maintained by the team separately
|
||||||
availability; document credential ownership and storage hints only.
|
from the build identifiers recorded for historical runs.
|
||||||
\textbf{Pending:} table updates, final version/title/date, glossary terms,
|
|
||||||
citations, dated figures, run hyperlinks, AI assistance review and removal
|
|
||||||
of every completed placeholder. Preserve truthful notes about any failures.
|
|
||||||
|
|
||||||
Troubleshooting: for a queued job check online status and label; for checkout
|
For operational records, the Hosts table identifies the Ubuntu runner VM,
|
||||||
failure check DNS, HTTPS and repository permissions; for TeX failure inspect
|
its owner, role, outbound HTTPS access, and availability conditions. The
|
||||||
the first compiler error; for upload failure inspect the artifact step and
|
Passwords table tracks only the runner credential custodian and storage hint,
|
||||||
server/action compatibility. A successful compiler run alone does not prove
|
not the token or private runner identity. The team tracks Chapter 3 changes
|
||||||
artifact upload. The operator checks the runner service, corrects the cause,
|
in the manual history and retains source, build, and artifact links for
|
||||||
and pushes a source correction to produce a new traceable run.
|
auditability. Index terms include runner, Gitea Actions, build artifact,
|
||||||
|
and reproducible compilation.
|
||||||
|
|
||||||
References: \url{https://docs.gitea.com/runner/2/},
|
\textbf{Troubleshooting:} For queued jobs, check VM power/network access,
|
||||||
\url{https://docs.gitea.com/runner/2/labels/},
|
runner service status, repository scope, label matching, and capacity. For
|
||||||
\url{https://docs.gitea.com/usage/actions/artifacts/}.
|
checkout failures, check HTTPS/DNS and repository authorization. For compiler
|
||||||
Replace or supplement these links with the manual's normal bibliography
|
failures, read the first actual TeX error, check paths and dependencies, and
|
||||||
entries during editorial review.
|
rerun after a committed repair. For missing artifacts, check that
|
||||||
|
\texttt{build/manual/SmartPark-Manual.pdf} exists and inspect the upload step.
|
||||||
|
A green compiler step alone does not establish successful artifact upload.
|
||||||
|
For failure/repair evidence, keep the exact commit, run link, timestamp, and
|
||||||
|
outcome synchronized across the manual and screenshots.
|
||||||
|
|
||||||
|
\textbf{Final submission check:} Commit the integrated LaTeX and PNG files,
|
||||||
|
verify a new successful Gitea Actions build, download its PDF artifact, open
|
||||||
|
and inspect every figure and build identifier, and submit that downloaded PDF.
|
||||||
|
The submitted deliverable is the PDF downloaded from the final successful
|
||||||
|
Gitea Actions run.
|
||||||
|
|||||||
@@ -22,6 +22,16 @@ link each entry to the changed chapter, table, figure, or controlled artifact.
|
|||||||
\bottomrule
|
\bottomrule
|
||||||
\endlastfoot
|
\endlastfoot
|
||||||
|
|
||||||
|
October 9, 2026 / 1.9-draft & NS, CDX &
|
||||||
|
Updated the assignment to \#5, ``LaTeX Auto-Compilation with Gitea.''
|
||||||
|
Recorded Nica Saoi's documentation of all eight sections of Automated
|
||||||
|
Manual Build: source and trigger; runner setup; reproducible compilation;
|
||||||
|
PDF version traceability; downloadable artifact; change, failure, and repair
|
||||||
|
evidence; runner and secret boundary; and manual quality and controls.
|
||||||
|
The chapter documents the successful Gitea Actions builds, downloadable PDFs
|
||||||
|
and matching build identifiers, and the controlled failure and repair sequence. &
|
||||||
|
\ChapterRef{AutomatedManualBuild}\\
|
||||||
|
|
||||||
October 9, 2026 / 1.9-draft & CDX; VP review pending &
|
October 9, 2026 / 1.9-draft & CDX; VP review pending &
|
||||||
Prepared host-mode manual build automation, generated build identification
|
Prepared host-mode manual build automation, generated build identification
|
||||||
and an eight-section Automated Manual Build draft. Execution and Gitea
|
and an eight-section Automated Manual Build draft. Execution and Gitea
|
||||||
|
|||||||
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 43 KiB |
@@ -0,0 +1,28 @@
|
|||||||
|
commit=9fec46a41ef1dcdffb40d0429e19475ba21af41c
|
||||||
|
revision=9fec46a41ef1
|
||||||
|
run=2
|
||||||
|
utc=2026-10-10 02:12 UTC
|
||||||
|
mode=Gitea Actions
|
||||||
|
|
||||||
|
Latexmk, John Collins, 20 November 2021. Version 4.76
|
||||||
|
pdfTeX 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian)
|
||||||
|
kpathsea version 6.3.4/dev
|
||||||
|
Copyright 2021 Han The Thanh (pdfTeX) et al.
|
||||||
|
There is NO warranty. Redistribution of this software is
|
||||||
|
covered by the terms of both the pdfTeX copyright and
|
||||||
|
the Lesser GNU General Public License.
|
||||||
|
For more information about these matters, see the file
|
||||||
|
named COPYING and the pdfTeX source.
|
||||||
|
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
|
||||||
|
Compiled with libpng 1.6.37; using libpng 1.6.37
|
||||||
|
Compiled with zlib 1.2.11; using zlib 1.2.11
|
||||||
|
Compiled with xpdf version 4.03
|
||||||
|
Pygments version 2.11.2, (c) 2006-2021 by Georg Brandl, Matthäus Chajdas and contributors.
|
||||||
|
|
||||||
|
Ubuntu package versions:
|
||||||
|
latexmk 1:4.76-1
|
||||||
|
lmodern 2.004.5-6.1
|
||||||
|
python3-pygments 2.11.2+dfsg-2ubuntu0.1
|
||||||
|
texlive-base 2021.20220204-1
|
||||||
|
texlive-fonts-recommended 2021.20220204-1
|
||||||
|
texlive-latex-extra 2021.20220204-1
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
commit=e16a6deab277621f860c8a057a80c9737b5eb4b1
|
||||||
|
revision=e16a6deab277
|
||||||
|
run=3
|
||||||
|
utc=2026-10-10 02:26 UTC
|
||||||
|
mode=Gitea Actions
|
||||||
|
|
||||||
|
Latexmk, John Collins, 20 November 2021. Version 4.76
|
||||||
|
pdfTeX 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian)
|
||||||
|
kpathsea version 6.3.4/dev
|
||||||
|
Copyright 2021 Han The Thanh (pdfTeX) et al.
|
||||||
|
There is NO warranty. Redistribution of this software is
|
||||||
|
covered by the terms of both the pdfTeX copyright and
|
||||||
|
the Lesser GNU General Public License.
|
||||||
|
For more information about these matters, see the file
|
||||||
|
named COPYING and the pdfTeX source.
|
||||||
|
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
|
||||||
|
Compiled with libpng 1.6.37; using libpng 1.6.37
|
||||||
|
Compiled with zlib 1.2.11; using zlib 1.2.11
|
||||||
|
Compiled with xpdf version 4.03
|
||||||
|
Pygments version 2.11.2, (c) 2006-2021 by Georg Brandl, Matthäus Chajdas and contributors.
|
||||||
|
|
||||||
|
Ubuntu package versions:
|
||||||
|
latexmk 1:4.76-1
|
||||||
|
lmodern 2.004.5-6.1
|
||||||
|
python3-pygments 2.11.2+dfsg-2ubuntu0.1
|
||||||
|
texlive-base 2021.20220204-1
|
||||||
|
texlive-fonts-recommended 2021.20220204-1
|
||||||
|
texlive-latex-extra 2021.20220204-1
|
||||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 72 KiB |