diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..549d184 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,16 @@ +pipeline { + agent none + stages { + stage('Build') { + agent { + docker { + image 'python:2-alpine' + } + } + steps { + sh 'python -m py_compile sources/helloWorld.py' + stash(name: 'compiled-results', includes: 'sources/*.py*') + } + } + } +} diff --git a/README.md b/README.md deleted file mode 100644 index e89024b..0000000 --- a/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# simple-python-pyinstaller-app - -This repository is for the -[Build a Python app with PyInstaller](https://jenkins.io/doc/tutorials/build-a-python-app-with-pyinstaller/) -tutorial in the [Jenkins User Documentation](https://jenkins.io/doc/). - -The repository contains a simple Python application which is a command line tool "add2vals" that outputs the addition of two values. If at least one of the -values is a string, "add2vals" treats both values as a string and instead -concatenates the values. The "add2" function in the "calc" library (which -"add2vals" imports) is accompanied by a set of unit tests. These are tested with pytest to check that this function works as expected and the results are saved -to a JUnit XML report. - -The delivery of the "add2vals" tool through PyInstaller converts this tool into -a standalone executable file for Linux, which you can download through Jenkins -and execute at the command line on Linux machines without Python. - -The `jenkins` directory contains an example of the `Jenkinsfile` (i.e. Pipeline) -you'll be creating yourself during the tutorial. diff --git a/sources/add2vals.py b/sources/add2vals.py deleted file mode 100644 index d671e38..0000000 --- a/sources/add2vals.py +++ /dev/null @@ -1,25 +0,0 @@ -''' -A simple command line tool that takes 2 values and adds them together using -the calc.py library's 'add2' function. -''' - -import sys -import calc - -argnumbers = len(sys.argv) - 1 - -if argnumbers == 2 : - print("") - print("The result is " + str(calc.add2(str(sys.argv[1]), str(sys.argv[2])))) - print("") - sys.exit(0) - -if argnumbers != 2 : - print("") - print("You entered " + str(argnumbers) + " value/s.") - print("") - print("Usage: 'add2vals X Y' where X and Y are individual values.") - print(" If add2vals is not in your path, usage is './add2vals X Y'.") - print(" If unbundled, usage is 'python add2vals.py X Y'.") - print("") - sys.exit(1) diff --git a/sources/calc.py b/sources/calc.py deleted file mode 100644 index 368c55b..0000000 --- a/sources/calc.py +++ /dev/null @@ -1,28 +0,0 @@ -''' -The 'calc' library contains the 'add2' function that takes 2 values and adds -them together. If either value is a string (or both of them are) 'add2' ensures -they are both strings, thereby resulting in a concatenated result. -NOTE: If a value submitted to the 'add2' function is a float, it must be done so -in quotes (i.e. as a string). -''' - -# If 'value' is not an integer, convert it to a float and failing that, a string. -def conv(value): - try: - return int(value) - except ValueError: - try: - return float(value) - except ValueError: - return str(value) - -# The 'add2' function itself -def add2(arg1, arg2): - # Convert 'arg1' and 'arg2' to their appropriate types - arg1conv = conv(arg1) - arg2conv = conv(arg2) - # If either 'arg1' or 'arg2' is a string, ensure they're both strings. - if isinstance(arg1conv, str) or isinstance(arg2conv, str): - arg1conv = str(arg1conv) - arg2conv = str(arg2conv) - return arg1conv + arg2conv diff --git a/sources/helloWorld.py b/sources/helloWorld.py new file mode 100644 index 0000000..8917a09 --- /dev/null +++ b/sources/helloWorld.py @@ -0,0 +1,2 @@ +print("Hello world!") +print("Adding more code") \ No newline at end of file diff --git a/sources/test_calc.py b/sources/test_calc.py deleted file mode 100644 index 130f9f7..0000000 --- a/sources/test_calc.py +++ /dev/null @@ -1,48 +0,0 @@ -import unittest -import calc - -class TestCalc(unittest.TestCase): - """ - Test the add function from the calc library - """ - - def test_add_integers(self): - """ - Test that the addition of two integers returns the correct total - """ - result = calc.add2(1, 2) - self.assertEqual(result, 3) - - def test_add_floats(self): - """ - Test that the addition of two floats returns the correct result - """ - result = calc.add2('10.5', 2) - self.assertEqual(result, 12.5) - - def test_add_strings(self): - """ - Test the addition of two strings returns the two strings as one - concatenated string - """ - result = calc.add2('abc', 'def') - self.assertEqual(result, 'abcdef') - - def test_add_string_and_integer(self): - """ - Test the addition of a string and an integer returns them as one - concatenated string (in which the integer is converted to a string) - """ - result = calc.add2('abc', 3) - self.assertEqual(result, 'abc3') - - def test_add_string_and_number(self): - """ - Test the addition of a string and a float returns them as one - concatenated string (in which the float is converted to a string) - """ - result = calc.add2('abc', '5.5') - self.assertEqual(result, 'abc5.5') - -if __name__ == '__main__': - unittest.main()