When using external build nodes or CI labs, the logs still need to be push to a public, centralized server. The following are the steps needed to get access to push logs to nexus.akraino.org.
Step-by-step guide
- Create a helpdesk ticket (currently, go to Jira Support Desk; always-up-to-date list here: https://docs.releng.linuxfoundation.org/en/latest/helpdesk.html). The request should indicate that you are requesting "external log pushing permissions". You must provide the following information:
- A name for the log directory/silo (we have generally just been using company name, e.g. "att" or "ericsson").
- An LFID to be granted appropriate permissions on the Nexus server. Please create an ID specifically for this purpose at identity.linuxfoundation.org, rather than using a personal LFID.
Pushing the logs from within your internal jobs can be handled however you like, but below is a suggested script (adapted from one provided by Andrew Wilkinson).
push_logs.sh# Deploying logs to LF Nexus log server ## # BUILD_NUMBER and JOB_NAME should be set by Jenkins NEXUS_URL=https://nexus.akraino.org SILO=<silo name provided above> JENKINS_HOSTNAME=<hostname/IP of your Jenkins host> BUILD_URL="${JENKINS_HOSTNAME}/job/${JOB_NAME}/${BUILD_NUMBER}/" NEXUS_PATH="${SILO}/job/${JOB_NAME}/${BUILD_NUMBER}" lftools deploy logs $NEXUS_URL $NEXUS_PATH $BUILD_URL echo "Logs uploaded to $NEXUS_URL/content/sites/logs/$NEXUS_PATH"
This method requires installing lftools via pip: https://pypi.org/project/lftools/. The credentials for your service account's LFID should be stored in
$HOME/.netrc
Related articles