Wednesday 16 November 2016

Moving from Jenkins (Tomcat) to Jenkins Standalone [UBUNTU]

SSH into ubuntu
sudo apt-get update
sudo apt-get install jenkins
sudo service jenkins stop
cd /var/lib/jenkins
rm -rf ./*
cp -a /var/lib/tomcat8/webapps/jenkins .
chown -R jenkins .
chgrp -R jenkins .
sudo service jenkins start

Thursday 30 June 2016

Jenkins Webhook, Only build Specific Branch after receiving web hook. e.g. only build master

With a web hook a request is made regardless of which branch it is on. Initially this would cause my Jenkins to initiate a build (on master) even when the commit was pushed to develop. To fix this we can follow these steps:


  • Open your jenkins project
  • configure it to use: Poll SCM (but leave the schedule blank)
  • save and exit

in Bitbucket / Github create a web hook and enter the following url (replacing your jenkins & git project details)

http://<your domain>/jenkins/git/notifyCommit?url=<your git repository url>
eg

http://fakewebsite.com:8080/jenkins/git/notifyCommit?url=git@bitbucket.org:faceuser/fakeproject.git

This will do the following:

  1. Send a web hook request to your jenkins
  2. Jenkins will process this request and look for Jenkins projects using the specified gitproject (e.g. git@bitbucket.org:faceuser/fakeproject.git)
  3. Jenkins will then poll git looking for changes on the specified branch





Jenkins unable to post to twitter due to Twitter-plugin not using SSL

Same problem as this
https://issues.jenkins-ci.org/browse/JENKINS-25740

 but the solution was to also replace jar the following files under
$jenkinsdir/plugins/twitter/WEB-INF/lib

twitter4j-core-3.0.3.jar with twitter4j-core-3.0.5.jar
twitter4j-async-3.0.3.jar with twitter4j-async-3.0.5.jar

Download from
http://central.maven.org/maven2/org/twitter4j/twitter4j-core/3.0.5/

reload jenkins deployment in tomcat manager and voila! it works!

Wednesday 29 June 2016

Jenkins job cannot create dirs under /home/jenkins/.m2/

ssh to the machine and check who ones the files/dirs if it owned by root change it to the tomcat users
sudo chown -R username:group directory

Friday 18 March 2016

Python Extracting 9 digit number from tomcat access log files into a unique set and printing to the screen

I had to extract all the 9 digit IDs that were used in a tomcat access log. Here is how I solved it with Python
import re
import os

from collections import Counter
# Compile the regular expressions \d{9} selects numbers that are 9 digits longs
p = re.compile('\d{9}', re.IGNORECASE)
output_file_name = 'output.csv'
# Initiate an array to store the students ids in
most_active = []
#for the files in this directory
for name in os.listdir("."):
    #if it starts with localhost_access_log & ends with a .txt extension
    if name.startswith("localhost_access_log") and name.endswith(".txt"):
        #read its contents
        with open(name, 'r') as myfile:
            print("Reading file: "+name)
            data=myfile.read().replace('\n', '')
            #Add the regex matches to the array
            most_active = most_active + re.findall(p, data)
# Count how many times a student id is repeated in the list
# This will tell us the most active students in the app
count = Counter(most_active)

# For each of the students, order them from most common to least
output_file = open(output_file_name,"w")
output_file.write("Student ID, Activity\n")
for student in count.most_common():
    line = str(student[0])+","+str(student[1])
    #print(line)
    
    output_file.write(line+"\n")
output_file.close()
print("File written successfully: "+output_file_name)
#Print out the total amount of students
print("Total Students:"+ str(len(count)))


Tuesday 15 March 2016

Missing iOS Distribution signing identity

After building and Archiving my App I was unable to Validate or Upload into the App Store due to missing iOS Distribution identity. 

After verifying that all credentials exist in the member center, restarting XCode and iOS the following post from stackoverflow fixed my issue

http://stackoverflow.com/a/35406327/5335798

  1. Download https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
  2. Double-click to install to Keychain.
  3. Then in Keychain, Select View -> "Show Expired Certificates" in Keychain app.
  4. It will list all the expired certifcates.
  5. Delete "Apple Worldwide Developer Relations Certificate Authority certificates" from "login" tab
  6. And also delete it from "System" tab.

Friday 5 February 2016

FIXED Invalid Apple Watch icon file names must match pattern “*@x.png”

Invalid Icon Name - The watch application 'Ellucian GO.app/Watch/Ellucian GO WatchKit App.app' contains an invalid icon file name 'Ellucian GO.app/Watch/Ellucian GO WatchKit App.app/AppIcon44x44@2x.png'. Make sure that icon file names follow the pattern "*<dimension>@<scale>x.png" and they match the required dimensions. Please visit https://developer.apple.com/watchkit/ for more information

I discoved the fix to this to be the following:
Disabled WatchOS 1.0


Making sure the the Icons are called APP ICON:
AppIcon24x24@2x.png
AppIcon27.5x27.5@2x.png
AppIcon29x29@2x.png
AppIcon29x29@3x.png
AppIcon40x40@2x.png
AppIcon44x44@2x.png
AppIcon86x86@2x.png
AppIcon98x98@2x.png

Clearing derived data & Restart XCODE
Deleted all files within XCODEs derived data folder

Build and Resubmit
Voila! No issues with Icons anymore!!!