Server Installation/trac: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Betrieb: delaycompress für Logrotate nach Analyse auf DEV-Liste)
 
(91 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Software zum Betrieb von trac Umgebung (Hilfsmittel für Entwickler).
+
Software zum Betrieb von [[Opennet DEV]] trac Umgebung (Hilfsmittel für Entwickler).
  
=== Installation ===
+
== Installation ==
  
* Installation trac
+
* Installation trac (incl. subversion)
 +
* Installation trac-git (git Plugin)
 +
* Installation trac-bitten trac-bitten-slave (Continuous Integration)
 +
* Installation trac-announcer (Benachrichtigungssystem)
 +
* Installation trac-xmlrpc (Externe Schnittstelle)
 +
* Installation libapache2-mod-wsgi (Apache Modul)
 +
* Vorbereitung Verzeichnisse: ''mkdir /var/www/trac
  
=== Konfiguration ===
+
== Konfiguration ==
  
* ?
+
* Anlegen einer neuen Projektumgebung:
 +
trac-admin /var/www/trac/ initenv
 +
  Project name [My Project]> Opennet Development
 +
  Database connection string [sqlite:db/trac.db]>
 +
trac-admin /var/www/trac/ deploy /tmp/trac
 +
mv /tmp/trac/* /var/www/trac/
 +
chown -R www-data:www-data /var/www/trac/
  
=== Betrieb ===
+
* Konfiguration der Projektumgebung in ''/var/www/trac/conf/trac.ini''
 +
[components]
 +
#webadmin.* = enabled
 +
#tracext.git.* = enabled
 +
bitten.* = enabled
 +
announcer.* = enabled
 +
#tracrpc.* = enabled
 +
[notification]
 +
always_notify_owner = false
 +
always_notify_reporter = false
 +
always_notify_updater = false
 +
email_sender = SendmailEmailSender
 +
sendmail_path = /usr/sbin/sendmail
 +
smtp_enabled = true
 +
smtp_from = dev@opennet-initiative.de
 +
smtp_from_name = Opennet Development
 +
smtp_replyto = admin@opennet-initiative.de
 +
[project]
 +
descr = Opennet Development
 +
footer = <a href="https://www.opennet-iniative.de/">Opennet Initiative e.V.</a>
 +
icon = site/favicon.ico
 +
url = https://dev.opennet-initiative.de
 +
[ticket]
 +
default_component = on_test
 +
default_type = task
 +
[header_logo]
 +
alt = Opennet Development
 +
link = /
 +
src = site/Opennet_logo_quer.gif
 +
[timeline]
 +
ticket_show_details = true
 +
[trac]
 +
base_url = https://dev.opennet-initiative.de/
 +
[wiki]
 +
ignore_missing_pages = true
 +
[announcer]
 +
email_enabled = true
 +
use_threaded_delivery = true
 +
always_notify_owner = true
 +
always_notify_reporter = true
 +
always_notify_updater = true
 +
always_notify_cc = true
 +
always_notify_component_owner = true
 +
email_from = dev@opennet-initiative.de
 +
email_from_name = Opennet Development
 +
email_to = dev
 +
email_replyto =
 +
email_address_resolvers = SpecifiedEmailResolver, SessionEmailResolver
 +
email_subject_prefix = Opennet DEV-
 +
[git]
 +
cached_repository = true
 +
persistent_cache = true
  
* User anlegen: ?
+
* Admin Nutzer für Projektumgebung:
* Repository anlegen: ?
+
trac-admin /var/www/trac/
* Rechte setzen: ?
+
  > permission add <adminname>.client.on TRAC_ADMIN
* Zugriffstest: ?
+
  > exit
* Committest: ?
+
  
== Installation (Alt / Manuell) ==
+
* Einbindung in Apache Webserver:
 +
# robots
 +
Alias /robots.txt /var/www/htdocs/dev.opennet-initiative.de/robots.txt
 +
# trac
 +
WSGIScriptAlias /trac /var/www/trac/cgi-bin/trac.wsgi
 +
Alias /trac/chrome/ /var/www/trac/htdocs/
 +
<Directory /var/www/trac/cgi-bin/trac.wsgi>
 +
    WSGIApplicationGroup %{GLOBAL}
 +
    Order deny,allow
 +
    Allow from all
 +
</Directory>
  
* Installieren der diversen Debian-Pakete wie unter [http://projects.edgewall.com/trac/wiki/TracInstall TracInstall] beschrieben.
+
* Login in Apache Webserver (HTTP als HTTPS-Redirect)
* Trac mit ''python ./setup.py install'' installieren (dabei werden diverse Files nach ''/usr/share/trac'' aber auch nach ''/usr/bin'' kopiert).
+
Redirect permanent /login https://dev.opennet-initiative.de/login
* Svn Rep. anlegen.
+
* Trac Umgebung anlegen ''trac-admin /var/www/trac/projektname initenv''.
+
:* Dabei darf ''/var/www/trac/projektname'' noch nicht existieren
+
:* Als DB habe ich SQLite ausgewählt und den Pfad übernommen
+
:* Danach befindet sich die Konfig unter ''/var/www/trac/projektname/conf/trac.ini''
+
:* Zum testen könnte man jetzt den Trac eigenen Webserver mit ''tracd --port 8000 /var/www/trac/projektname'' starten
+
* Verzeichnis kann nachträglich verschoben werden da alle Pfade relativ sind.
+
* Debian Paket ''libapache2-mod-python2.3'' installiert (die mod-python für apache 1.3 ist zu alt)
+
:* Zur Authentifizierung ''/var/www/trac/projektname/.htaccess'' angelegt.
+
:* Apache2 Konfig
+
 
+
  <pre><VirtualHost 193.158.231.39:80>
+
  
        <Location /projects>
+
* Login in Apache Webserver (HTTPS mit Client-Zertifikat)
            SetHandler mod_python
+
<Location "/login">
            PythonHandler trac.web.modpython_frontend
+
    # client cert auth
            PythonOption TracEnvParentDir /var/www/trac
+
    SSLVerifyClient optional
            PythonOption TracUriRoot /projects
+
    SSLVerifyDepth 3
        </Location>
+
    # forward auth to cgi
 +
    SSLUserName SSL_CLIENT_S_DN_CN
 +
    # allow specific cert CN
 +
    #check disabled, rights granted inside trac - mathias mahnke 2014/04/26
 +
    #SSLRequire %{SSL_CLIENT_S_DN_CN} in {"<adminname1>.client.on","<adminname2>.client.on"}
 +
    # client cert error handling
 +
    RewriteEngine on
 +
    RewriteCond %{SSL:SSL_CLIENT_VERIFY} !=SUCCESS
 +
    RewriteRule .? - [F]
 +
    ErrorDocument 403 "You need a certificate issued by Opennet Client Sub-CA to access this site."
 +
</Location>
  
        <Location "/projects/projektname/login">
+
* Anlegen eines Git Repositories:
            AuthType Basic
+
mkdir /var/git/repositories/<on_projectname>
            AuthName "si login"
+
cd /var/git/repositories/<on_projectname>
            AuthUserFile /var/www/trac/projektname/.htaccess
+
git --bare init
            Require valid-user
+
git update-server-info
        </Location>
+
cd hooks
 +
mv post-update.sample post-update
  
  </VirtualHost></pre>
+
* nun via Trac Admin Webinterface in Projektumgebung einbinden sowie:
 +
trac-admin /var/www/trac/ changeset added "<on_projectname>"
 +
echo "exec trac-admin /var/www/trac/ changeset added \"<on_projectname>\"" >> /var/git/repositories/<on_projectname>/hooks/post-update
 +
 
 +
* sonstige Trac Nacharbeiten:
 +
** Berechtigungen TICKET_CREATE u. TICKET_APPEND für Anonymous erlauben
 +
** Berechtigungen TICKET_EDIT_COMMENT u. TICKET_MODIFY für Ticket-Verwalter erlauben
 +
** Berechtigungen BUILD_ADMIN, MILESTONE_ADMIN, PERMISSION_ADMIN, REPORT_ADMIN, TICKET_ADMIN für weitere Administratoren setzen
 +
** Site Logo setzen, Wiki Startseite bearbeiten
 +
 
 +
* Anlegen einer Gitolite Umgebung siehe [[Server Installation/gitolite]]
 +
 
 +
* Einbinden von Bitten u. Trac-Announcer, Projektumgebung aktualisieren:
 +
trac-admin /var/www/trac/ upgrade
 +
trac-admin /var/www/trac wiki upgrade
 +
trac-admin /var/www/trac/ deploy /tmp/trac
 +
cp -R /tmp/trac/* /var/www/trac/
 +
chown -R www-data:www-data /var/www/trac/
 +
ln -s /usr/share/javascript/flot/jquery.flot.js /var/www/trac/htdocs/bitten/
 +
ln -s /usr/share/javascript/excanvas/excanvas.js /var/www/trac/htdocs/bitten/
 +
 
 +
* Einbindung von Bitten, Repository Alias "(default") setzen sowie Rechte BUILD_ADMIN an Nutzer und BUILD_VIEW an Anonymous nach Bedarf vergeben
 +
 
 +
* trac-bitten-slave als Deamon (auf separatem Build Server):
 +
mkdir /home/trac-bitten-slave
 +
useradd --home-dir /home/trac-bitten-slave --comment "bitten service user" --system --shell /bin/false trac-bitten-slave
 +
chown -R trac-bitten-slave: /home/trac-bitten-slave
 +
cp /usr/share/doc/trac-bitten-slave/examples/trac-bitten-slave.default /etc/default/trac-bitten-slave
 +
cp /usr/share/doc/trac-bitten-slave/examples/trac-bitten-slave.init /etc/init.d/trac-bitten-slave
 +
chmod +x /etc/init.d/trac-bitten-slave
 +
cat >>/etc/default/trac-bitten-slave <<-EOF
 +
DAEMON_ARGS="--work-dir=/home/trac-bitten-slave/build --build-dir=/home/trac-bitten-slave/build --keep-files --log=/home/trac-bitten-slave/log/bitten-slave.log"
 +
URLS="https://dev.opennet-initiative.de/builds"
 +
EOF
 +
update-rc.d trac-bitten-slave defaults
 +
 
 +
== Betrieb ==
 +
=== Allgemenes ===
 +
 
 +
* Nutzer anlegen: Anmeldung erfolgt über [[Opennet CA]] Zertifikate der Client Sub-CA. Rechtevergabe per ''trac-admin''.
 +
* Repository anlegen: Git anlegen siehe [[Server Installation/gitolite]], Einbindung per Trac Webadmin GUI sowie Veröffentlichung via Apache Config vornehmen.
 +
* Bitten-Slave ausführen: ''bitten-slave https://dev.opennet-initiative.de/builds -vv --work-dir=. --build-dir=. --keep-files''
 +
* Die Build-Recipes können im trac über den Tab "Admin" - "Build, Configurations" ausgewählt werden. Um den Punkt "Build, Configurations" zu sehen, muss man entsprechende Admin-Rechte im trac haben/bekommen.
 +
 
 +
Build-Recipe "on_firmware.ar71xx" for continuous builds:
 +
<pre>
 +
<build description="Build system"
 +
xmlns:sh="http://bitten.edgewall.org/tools/sh"
 +
xmlns:c="http://bitten.edgewall.org/tools/c"
 +
>
 +
<step id="Checkout">
 +
<sh:exec file="git" dir="on_firmware" args="pull" />
 +
</step>
 +
<step id="Init">
 +
<c:make target="init" file="on_firmware/Makefile" directory="on_firmware" args="" />
 +
</step>
 +
<step id="Make">
 +
<c:make target="ar71xx" file="on_firmware/Makefile" directory="on_firmware" args="V=s" />
 +
</step>
 +
</build>
 +
</pre>
 +
 +
Build-Recipe "on_firmware.ar71xx-clean"
 +
<pre>
 +
<build description="Build system"
 +
xmlns:sh="http://bitten.edgewall.org/tools/sh"
 +
xmlns:c="http://bitten.edgewall.org/tools/c"
 +
>
 +
<step id="Clean">
 +
<sh:exec file="rm" args="-rf on_firmware" />
 +
</step>
 +
<step id="Checkout">
 +
<sh:exec file="git" args="clone https://dev.opennet-initiative.de/git/on_firmware" />
 +
</step>
 +
<step id="Init">
 +
<c:make target="init" file="on_firmware/Makefile" directory="on_firmware" args="" />
 +
</step>
 +
<step id="Make-ar71xx">
 +
<c:make target="ar71xx" file="on_firmware/Makefile" directory="on_firmware" args="V=s" />
 +
</step>
 +
</build>
 +
</pre>
 +
 
 +
Logrotate trac-bitten-slave:
 +
<pre>
 +
/home/trac-bitten-slave/log/*.log {
 +
  rotate 10
 +
  weekly
 +
  compress
 +
  delaycompress
 +
  missingok
 +
  notifempty
 +
}
 +
</pre>
 +
 
 +
=== Build erneut auslösen ===
 +
* beim Experimentieren mit einer Build-Konfiguration ist es manchmal sinnvoll, einen Build erneut durchzuführen
 +
* das pushen eines neuen Commits zum Triggern des Auto-Builders ist mit einiger Verzögerung verbunden
 +
* verzögerungsfreie Alternative: den Build anklicken und ''Invalidate Build'' zu wählen
 +
* kurz darauf wird der Build-Vorgang auf dem Slave erneut ausgeführt
 +
 
 +
=== Buildumgebung neu initialisieren ===
 +
Es kann bei größeren Commits vorkommen, dass das Bauen der Firmware nach einem "git pull" Fehler hervorbringt. Typischerweise passiert das, wenn eines der Git Submodule aktualisiert wurde (z.B. OpenWrt). An dieser Stelle muss ein komplett neuer Build angestoßen werden. Mit trac-bitten muss folgendes durchgeführt werden:
 +
* build clean - dafür nur "on_firmware.clean" auswählen und warten bis slave Recipe ausgeführt hat. Die Option "on_firmware.clean" ist nur zugänglich, wenn der Nutzer in der trac-admin Gruppe ist. Dann gibt es auf der Trac-Webseite einen Menüpunkt "Admin". Auf der nächsten Seite "Configurations" auswählen und nun ist auch "on_firmware.clean" auswählbar.
 +
* den bestehenden, bisher fehlerhaften Build, invalidieren (Tab "Build Status" -> dort auf den Build klicken -> "Invalidate build" klicken). Und zusätzlich die Auswahl der Recipes wieder auf Ausgangslage zurücksetzen, sodass "clean" nicht aktiviert ist.
 +
Jetzt sollte automatisch der Slave beginnen alles neu zu bauen.
 +
 
 +
== Fehlersuche ==
 +
=== trac-Interface reagiert nicht / hunderte git-Prozesse ===
 +
* Wenn in einer Build-Konfiguration keine Zielplattform (z.B. ''name ~= minato#') angegeben ist, dann hängt das bitten-Plugin.
 +
* Gleichzeitig werden hunderte git-Prozesse gestartet, die kein Ende finden.
 +
 
 +
=== Logfile ===
 +
* das trac Logfile befindet sich unter ''/var/www/trac/log/trac.log'' (Dev-Server)
 +
* das bitten-slave Logfile findet sich unter ''/home/trac-bitten-slave/log/bitten-slave.log'' (Build-Server)
 +
* unser Loglevel steht standardmäßig auf WARNING, muss ggf. erhöht werden
  
 
[[Kategorie:Server]]
 
[[Kategorie:Server]]

Aktuelle Version vom 23. Februar 2022, 21:37 Uhr

Software zum Betrieb von Opennet DEV trac Umgebung (Hilfsmittel für Entwickler).

Inhaltsverzeichnis

[Bearbeiten] Installation

  • Installation trac (incl. subversion)
  • Installation trac-git (git Plugin)
  • Installation trac-bitten trac-bitten-slave (Continuous Integration)
  • Installation trac-announcer (Benachrichtigungssystem)
  • Installation trac-xmlrpc (Externe Schnittstelle)
  • Installation libapache2-mod-wsgi (Apache Modul)
  • Vorbereitung Verzeichnisse: mkdir /var/www/trac

[Bearbeiten] Konfiguration

  • Anlegen einer neuen Projektumgebung:
trac-admin /var/www/trac/ initenv
 Project name [My Project]> Opennet Development
 Database connection string [sqlite:db/trac.db]>
trac-admin /var/www/trac/ deploy /tmp/trac
mv /tmp/trac/* /var/www/trac/
chown -R www-data:www-data /var/www/trac/
  • Konfiguration der Projektumgebung in /var/www/trac/conf/trac.ini
[components]
#webadmin.* = enabled
#tracext.git.* = enabled
bitten.* = enabled
announcer.* = enabled
#tracrpc.* = enabled 
[notification]
always_notify_owner = false
always_notify_reporter = false
always_notify_updater = false
email_sender = SendmailEmailSender
sendmail_path = /usr/sbin/sendmail
smtp_enabled = true
smtp_from = dev@opennet-initiative.de 
smtp_from_name = Opennet Development
smtp_replyto = admin@opennet-initiative.de
[project]
descr = Opennet Development
footer = <a href="https://www.opennet-iniative.de/">Opennet Initiative e.V.</a>
icon = site/favicon.ico
url = https://dev.opennet-initiative.de
[ticket]
default_component = on_test
default_type = task
[header_logo]
alt = Opennet Development
link = /
src = site/Opennet_logo_quer.gif
[timeline]
ticket_show_details = true
[trac]
base_url = https://dev.opennet-initiative.de/
[wiki]
ignore_missing_pages = true
[announcer]
email_enabled = true
use_threaded_delivery = true
always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true
always_notify_cc = true
always_notify_component_owner = true
email_from = dev@opennet-initiative.de
email_from_name = Opennet Development
email_to = dev
email_replyto =
email_address_resolvers = SpecifiedEmailResolver, SessionEmailResolver
email_subject_prefix = Opennet DEV-
[git]
cached_repository = true
persistent_cache = true
  • Admin Nutzer für Projektumgebung:
trac-admin /var/www/trac/
 > permission add <adminname>.client.on TRAC_ADMIN
 > exit
  • Einbindung in Apache Webserver:
# robots
Alias /robots.txt /var/www/htdocs/dev.opennet-initiative.de/robots.txt
# trac
WSGIScriptAlias /trac /var/www/trac/cgi-bin/trac.wsgi
Alias /trac/chrome/ /var/www/trac/htdocs/
<Directory /var/www/trac/cgi-bin/trac.wsgi>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>
  • Login in Apache Webserver (HTTP als HTTPS-Redirect)
Redirect permanent /login https://dev.opennet-initiative.de/login
  • Login in Apache Webserver (HTTPS mit Client-Zertifikat)
<Location "/login">
    # client cert auth
    SSLVerifyClient optional
    SSLVerifyDepth 3
    # forward auth to cgi
    SSLUserName SSL_CLIENT_S_DN_CN
    # allow specific cert CN
    #check disabled, rights granted inside trac - mathias mahnke 2014/04/26
    #SSLRequire %{SSL_CLIENT_S_DN_CN} in {"<adminname1>.client.on","<adminname2>.client.on"}
    # client cert error handling
    RewriteEngine on
    RewriteCond %{SSL:SSL_CLIENT_VERIFY} !=SUCCESS
    RewriteRule .? - [F]
    ErrorDocument 403 "You need a certificate issued by Opennet Client Sub-CA to access this site."
</Location>
  • Anlegen eines Git Repositories:
mkdir /var/git/repositories/<on_projectname>
cd /var/git/repositories/<on_projectname>
git --bare init
git update-server-info
cd hooks 
mv post-update.sample post-update
  • nun via Trac Admin Webinterface in Projektumgebung einbinden sowie:
trac-admin /var/www/trac/ changeset added "<on_projectname>"
echo "exec trac-admin /var/www/trac/ changeset added \"<on_projectname>\"" >> /var/git/repositories/<on_projectname>/hooks/post-update
  • sonstige Trac Nacharbeiten:
    • Berechtigungen TICKET_CREATE u. TICKET_APPEND für Anonymous erlauben
    • Berechtigungen TICKET_EDIT_COMMENT u. TICKET_MODIFY für Ticket-Verwalter erlauben
    • Berechtigungen BUILD_ADMIN, MILESTONE_ADMIN, PERMISSION_ADMIN, REPORT_ADMIN, TICKET_ADMIN für weitere Administratoren setzen
    • Site Logo setzen, Wiki Startseite bearbeiten
  • Einbinden von Bitten u. Trac-Announcer, Projektumgebung aktualisieren:
trac-admin /var/www/trac/ upgrade
trac-admin /var/www/trac wiki upgrade
trac-admin /var/www/trac/ deploy /tmp/trac
cp -R /tmp/trac/* /var/www/trac/
chown -R www-data:www-data /var/www/trac/
ln -s /usr/share/javascript/flot/jquery.flot.js /var/www/trac/htdocs/bitten/
ln -s /usr/share/javascript/excanvas/excanvas.js /var/www/trac/htdocs/bitten/
  • Einbindung von Bitten, Repository Alias "(default") setzen sowie Rechte BUILD_ADMIN an Nutzer und BUILD_VIEW an Anonymous nach Bedarf vergeben
  • trac-bitten-slave als Deamon (auf separatem Build Server):
mkdir /home/trac-bitten-slave
useradd --home-dir /home/trac-bitten-slave --comment "bitten service user" --system --shell /bin/false trac-bitten-slave
chown -R trac-bitten-slave: /home/trac-bitten-slave
cp /usr/share/doc/trac-bitten-slave/examples/trac-bitten-slave.default /etc/default/trac-bitten-slave
cp /usr/share/doc/trac-bitten-slave/examples/trac-bitten-slave.init /etc/init.d/trac-bitten-slave
chmod +x /etc/init.d/trac-bitten-slave
cat >>/etc/default/trac-bitten-slave <<-EOF
	DAEMON_ARGS="--work-dir=/home/trac-bitten-slave/build --build-dir=/home/trac-bitten-slave/build --keep-files --log=/home/trac-bitten-slave/log/bitten-slave.log"
	URLS="https://dev.opennet-initiative.de/builds"
EOF
update-rc.d trac-bitten-slave defaults

[Bearbeiten] Betrieb

[Bearbeiten] Allgemenes

  • Nutzer anlegen: Anmeldung erfolgt über Opennet CA Zertifikate der Client Sub-CA. Rechtevergabe per trac-admin.
  • Repository anlegen: Git anlegen siehe Server Installation/gitolite, Einbindung per Trac Webadmin GUI sowie Veröffentlichung via Apache Config vornehmen.
  • Bitten-Slave ausführen: bitten-slave https://dev.opennet-initiative.de/builds -vv --work-dir=. --build-dir=. --keep-files
  • Die Build-Recipes können im trac über den Tab "Admin" - "Build, Configurations" ausgewählt werden. Um den Punkt "Build, Configurations" zu sehen, muss man entsprechende Admin-Rechte im trac haben/bekommen.

Build-Recipe "on_firmware.ar71xx" for continuous builds:

<build description="Build system"
 xmlns:sh="http://bitten.edgewall.org/tools/sh"
 xmlns:c="http://bitten.edgewall.org/tools/c"
>
<step id="Checkout">
 <sh:exec file="git" dir="on_firmware" args="pull" />
</step>
<step id="Init">
 <c:make target="init" file="on_firmware/Makefile" directory="on_firmware" args="" />
</step>
<step id="Make">
 <c:make target="ar71xx" file="on_firmware/Makefile" directory="on_firmware" args="V=s" />
</step>
</build>

Build-Recipe "on_firmware.ar71xx-clean"

<build description="Build system"
 xmlns:sh="http://bitten.edgewall.org/tools/sh"
 xmlns:c="http://bitten.edgewall.org/tools/c"
>
<step id="Clean">
 <sh:exec file="rm" args="-rf on_firmware" />
</step>
<step id="Checkout">
 <sh:exec file="git" args="clone https://dev.opennet-initiative.de/git/on_firmware" />
</step>
<step id="Init">
 <c:make target="init" file="on_firmware/Makefile" directory="on_firmware" args="" />
</step>
<step id="Make-ar71xx">
 <c:make target="ar71xx" file="on_firmware/Makefile" directory="on_firmware" args="V=s" />
</step>
</build>

Logrotate trac-bitten-slave:

/home/trac-bitten-slave/log/*.log {
  rotate 10
  weekly
  compress
  delaycompress
  missingok
  notifempty
}

[Bearbeiten] Build erneut auslösen

  • beim Experimentieren mit einer Build-Konfiguration ist es manchmal sinnvoll, einen Build erneut durchzuführen
  • das pushen eines neuen Commits zum Triggern des Auto-Builders ist mit einiger Verzögerung verbunden
  • verzögerungsfreie Alternative: den Build anklicken und Invalidate Build zu wählen
  • kurz darauf wird der Build-Vorgang auf dem Slave erneut ausgeführt

[Bearbeiten] Buildumgebung neu initialisieren

Es kann bei größeren Commits vorkommen, dass das Bauen der Firmware nach einem "git pull" Fehler hervorbringt. Typischerweise passiert das, wenn eines der Git Submodule aktualisiert wurde (z.B. OpenWrt). An dieser Stelle muss ein komplett neuer Build angestoßen werden. Mit trac-bitten muss folgendes durchgeführt werden:

  • build clean - dafür nur "on_firmware.clean" auswählen und warten bis slave Recipe ausgeführt hat. Die Option "on_firmware.clean" ist nur zugänglich, wenn der Nutzer in der trac-admin Gruppe ist. Dann gibt es auf der Trac-Webseite einen Menüpunkt "Admin". Auf der nächsten Seite "Configurations" auswählen und nun ist auch "on_firmware.clean" auswählbar.
  • den bestehenden, bisher fehlerhaften Build, invalidieren (Tab "Build Status" -> dort auf den Build klicken -> "Invalidate build" klicken). Und zusätzlich die Auswahl der Recipes wieder auf Ausgangslage zurücksetzen, sodass "clean" nicht aktiviert ist.

Jetzt sollte automatisch der Slave beginnen alles neu zu bauen.

[Bearbeiten] Fehlersuche

[Bearbeiten] trac-Interface reagiert nicht / hunderte git-Prozesse

  • Wenn in einer Build-Konfiguration keine Zielplattform (z.B. name ~= minato#') angegeben ist, dann hängt das bitten-Plugin.
  • Gleichzeitig werden hunderte git-Prozesse gestartet, die kein Ende finden.

[Bearbeiten] Logfile

  • das trac Logfile befindet sich unter /var/www/trac/log/trac.log (Dev-Server)
  • das bitten-slave Logfile findet sich unter /home/trac-bitten-slave/log/bitten-slave.log (Build-Server)
  • unser Loglevel steht standardmäßig auf WARNING, muss ggf. erhöht werden
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge