74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Jsonnet
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Jsonnet
		
	
	
	
	
	
| /*
 | |
| Code to generate the .drone.yaml. Use the command:
 | |
| 
 | |
| drone jsonnet --stream --format yaml
 | |
| */
 | |
| 
 | |
| 
 | |
| local PYTHON_VERSIONS = ["3.8", "3.9"];
 | |
| 
 | |
| 
 | |
| local BuildAndTestPipeline(name, image) = {
 | |
|   kind: "pipeline",
 | |
|   type: "docker",
 | |
|   name: name,
 | |
|   steps: [
 | |
|     {
 | |
|       name: "Install package and test",
 | |
|       image: image,
 | |
|       commands: [
 | |
|         "test \"$(md5sum tasks.py)\" = \"18f864b3ac76119938e3317e49b4ffa1  tasks.py\"",
 | |
|         "pip install -U setuptools wheel pip; pip install invoke",
 | |
|         "invoke prepare-upload"
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       name: "coverage",
 | |
|       image: "plugins/codecov",
 | |
|       settings: {
 | |
|         token: "9ea10e04-a71a-4eea-9dcc-8eaabe1479e2",
 | |
|         files: ["coverage.xml"]
 | |
|       }
 | |
|     }
 | |
|   ],
 | |
|   trigger: {
 | |
|     event: ["pull_request", "push", "tag"]
 | |
|   }
 | |
| };
 | |
| 
 | |
| 
 | |
| [
 | |
|     BuildAndTestPipeline("python-" + std.strReplace(pythonVersion, '.', '-'),
 | |
|              "python:" + pythonVersion)
 | |
|     for pythonVersion in PYTHON_VERSIONS
 | |
| ] + [
 | |
|     {
 | |
|       kind: "pipeline",
 | |
|       type: "docker",
 | |
|       name: "Deploy on Pypi",
 | |
|       steps: [
 | |
|         {
 | |
|           name: "Install twine and deploy",
 | |
|           image: "python:3.8",
 | |
|           environment: {
 | |
|             pypi_username: {
 | |
|               from_secret: 'pypi_username'
 | |
|             },
 | |
|             pypi_password: {
 | |
|               from_secret: 'pypi_password'
 | |
|             }
 | |
|           },
 | |
|           commands: [
 | |
|             "test \"$(md5sum tasks.py)\" = \"18f864b3ac76119938e3317e49b4ffa1  tasks.py\"",
 | |
|             "pip install -U setuptools wheel pip; pip install invoke",
 | |
|             "invoke upload --pypi-user \"$pypi_username\" --pypi-password \"$pypi_password\""
 | |
|           ]
 | |
|         },
 | |
|       ],
 | |
|       trigger: {
 | |
|         event: ["tag"]
 | |
|       },
 | |
|       depends_on: ["python-" + std.strReplace(pythonVersion, '.', '-') for pythonVersion in PYTHON_VERSIONS]
 | |
|     }
 | |
| ]
 |