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"
Another way is to push all the log files within a given folder to Nexus, with the below suggested script:
push_logs.sh
# Archive files to LF Nexus log server ## NEXUS_URL=https://nexus.akraino.org SILO=<silo name provided above> NEXUS_PATH=<the destination folder on Nexus, such as $SILO/job> WORKSPACE=<archives directory provided by the user, with the -p option below it specifies the file pattern as .log files> lftools deploy archives -p '**/*.log' $NEXUS_URL $NEXUS_PATH $WORKSPACE 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