<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>2019-01 on Funky Si's Test</title><link>https://blog-test.funkysi1701.com/2019/01/</link><description>Recent content in 2019-01 on Funky Si's Test</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><managingEditor>funkysi1701@gmail.com (Simon Foster)</managingEditor><webMaster>funkysi1701@gmail.com (Simon Foster)</webMaster><lastBuildDate>Thu, 31 Jan 2019 20:00:45 +0000</lastBuildDate><atom:link href="https://blog-test.funkysi1701.com/2019/01/index.xml" rel="self" type="application/rss+xml"/><item><title>Yaml Builds on Azure DevOps</title><link>https://blog-test.funkysi1701.com/posts/2019/yaml-builds-on-azure-devops/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Thu, 31 Jan 2019 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2019/yaml-builds-on-azure-devops/</guid><category term="CI">CI</category><category term="Build">Build</category><category term="Azure">Azure</category><category term="DevOps">DevOps</category><category term="AzureDevOps">AzureDevOps</category><description>&lt;p&gt;I have been using Azure DevOps (Or VSTS or VSO etc) for a while now and one of the great features is doing automatic builds with every check-in. This is more commonly known as a CI (continuous integration) build.&lt;/p&gt;
&lt;p&gt;More recently I have started playing about with creating my build using YAML files instead of using the web user interface to create my build.&lt;/p&gt;
&lt;h2 id="why"&gt;Why?&lt;a class="anchor ms-1" href="#why" aria-label="Permalink: Why?"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You may wonder why go to the effort of learning the YAML syntax when you can just create the build in Azure DevOps and then forget about it.&lt;/p&gt;
&lt;p&gt;Mostly it is because the build changes over time and you shouldn’t just forget about it. If something changes over time then you might want to version control it, or look at a previous version.&lt;/p&gt;
&lt;p&gt;Lets say you create a pull request that replaces a .net 4.7 web service with a .net core web service. If you have a CI build this PR will fail because it won’t build. If you change the build first any other builds going on will fail. What you want in this case is the build to be associated with that branch or PR. Any builds before you merge this change in will continue to work and any after this change will also work.&lt;/p&gt;
&lt;h2 id="how"&gt;How?&lt;a class="anchor ms-1" href="#how" aria-label="Permalink: How?"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;How do you get started with YAML builds? Well the first thing is to make sure that YAML builds are turned on, as I write this I believe they are still a feature you can turn on or off. Have a look in Preview features and make sure they are turned on.&lt;/p&gt;
&lt;p&gt;Next look at any of your existing builds and click the View YAML link. This will show you an example YAML file of your existing build. You could just save this as azure-pipelines.yml and checkin to the root of your project. You can also click the add new build pipeline option, this will give you some templates to start you off.&lt;/p&gt;
&lt;p&gt;The YAML file consists of a series of build steps usually called tasks, with a few settings before to configure things like parameters or build agents. Detailed docs about the syntax of the file can be found &lt;a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&amp;amp;tabs=schema" target="_blank" rel="noopener noreferrer"&gt;here&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;For my mobile app my YAML files consist of downloading nuget packages, building the solution, building specific projects with desired settings, running powershell or other scripts to set things up and finally publishing the results of the build as artifacts so that they can be used in any releases.&lt;/p&gt;
&lt;h2 id="secure-it"&gt;Secure It!&lt;a class="anchor ms-1" href="#secure-it" aria-label="Permalink: Secure It!"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Avoid committing passwords and secure keys into source control. I have found you can upload secure files via Azure DevOps and then add a download secure files step at the start of your build. This allows the secure file to be used during the build but the contents of the file can’t be viewed by anyone with access to the source code.&lt;/p&gt;
&lt;p&gt;I find it often takes a bit of thinking about how to achieve this, but it is usually possible to keep keys and secrets secure.&lt;/p&gt;</description></item><item><title>Pwned Pass Update</title><link>https://blog-test.funkysi1701.com/posts/2019/pwned-pass-update/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Wed, 23 Jan 2019 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2019/pwned-pass-update/</guid><category term="Xamarin">Xamarin</category><category term="Android">Android</category><category term="PwnedPass">PwnedPass</category><media:content medium="image" type="image/png" url="https://blog-test.funkysi1701.com/images/2019/01/image.png"/><description>&lt;p&gt;Its been a while since I first released Pwned Pass so lets have a look at where we are now.&lt;/p&gt;
&lt;p&gt;We are very close to 500 Downloads from Google Play and we have recently smashed past 100 active installs, peaking at 116 and even now we are still over 100. I have had 9 reviews (6 x 5*, 2 x 1 * and a 4 *) which averages out at 4 *
&lt;img class="img-fluid" alt="Alt Text" src="https://blog-test.funkysi1701.com/images/2019/01/image.png" loading="lazy"
width="906" height="832"
/&gt;
Over Christmas I released a UWP version that can be found in the Microsoft Store. This has currently had 9 downloads and even had a download to Windows Mobile (someone out there still likes the platform!)
&lt;img class="img-fluid" alt="Alt Text" src="https://blog-test.funkysi1701.com/images/2019/01/image-1.png" loading="lazy"
width="876" height="845"
/&gt;
I have a fairly smooth deployment process using Azure DevOps. After every check in of code a build runs which compiles the UWP and Android versions. The build also increments the version numbers that is required to deploy to either of the app stores.&lt;/p&gt;
&lt;p&gt;Every successful build of the master branch will kick off a release to the Beta track of Google Play. If I am happy I then release to 10% of the Production track, which can then be increased to 100% (or halted). The release to Microsoft Store happens after the Beta track of Google Play. Only reason for this order is that there isn’t a beta area for UWP apps so I want to quickly test change on android before rolling out for windows.&lt;/p&gt;
&lt;p&gt;All these steps require confirmation by me before proceeding and often don’t get further than the beta track.&lt;/p&gt;
&lt;p&gt;A further development is that I have open sourced the source code to &lt;a href=""&gt;github&lt;/a&gt;
do take a look if you are curious or want to contribute. With the purchase by Microsoft there are easy ways to connect github repositories to Azure DevOps. Once I create a Pull Request in github it creates a build in Azure DevOps and all the build and release steps can happen.&lt;/p&gt;
&lt;p&gt;I am still not 100% sure if I want to keep my bug and issue tracking in github or Azure DevOps as both have features for doing so.&lt;/p&gt;
&lt;p&gt;One future improvement I want to make is to automate the creation of screenshots. When I create a new feature and it gets checked in. I would like to automatically created screenshots of the key pages and submit them to the different app stores. Currently I am not sure if this is possible or how to go about it. I have some ideas to experiment with so we will see what I can do.&lt;/p&gt;</description></item><item><title>What I planned to achieve in 2019</title><link>https://blog-test.funkysi1701.com/posts/2019/lets-see-what-2019-can-do/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Tue, 01 Jan 2019 20:00:45 +0000</pubDate><guid>https://blog-test.funkysi1701.com/posts/2019/lets-see-what-2019-can-do/</guid><category term="Goals">Goals</category><category term=""/><description>&lt;p&gt;This is my annual lets make some goals for the new year blog post. So in no particular order.&lt;/p&gt;
&lt;h2 id="improve-house"&gt;Improve House&lt;a class="anchor ms-1" href="#improve-house" aria-label="Permalink: Improve House"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I can’t outdo last years goal of buying a house but I can continue to make efforts to improve it. I was going to put something about decorating or doing something to our bedrooms, however today I spotted a hole in the roof so this may well absorb most of my home improvement budget.&lt;/p&gt;
&lt;h2 id="connect-with-local-area"&gt;Connect with local area&lt;a class="anchor ms-1" href="#connect-with-local-area" aria-label="Permalink: Connect with local area"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since we moved in October we haven’t really connected with our local area yet. My only interaction with my neighbours was when my car blocked his drive!&lt;/p&gt;
&lt;p&gt;I am going to make efforts to change this in 2019. I don’t exactly know how yet, but I have some ideas. My son starts nursery and later school this year so could be one way to meet other parents and teachers. I want to connect with a local church, so far this hasn’t happened so need to make more effort with this. There are other local groups that put on child friendly events which would be good to attend.&lt;/p&gt;
&lt;h2 id="lightning-talk"&gt;Lightning Talk&lt;a class="anchor ms-1" href="#lightning-talk" aria-label="Permalink: Lightning Talk"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I failed last year to do this so it is back on my list. I know I must have stuff of value to share so going to try again on this.&lt;/p&gt;
&lt;p&gt;A lightning talk is a very short talk or presentation given at a conference or user group. I am not a natural public speaker so this is a step out of my comfort zone, however I am going to start small and see what happens.&lt;/p&gt;
&lt;p&gt;##Family Holiday
As always we Fosters are going to have a holiday in the summer and have some quality family time. I also want to take the boys to London for a weekend.&lt;/p&gt;
&lt;h2 id="blogging"&gt;Blogging&lt;a class="anchor ms-1" href="#blogging" aria-label="Permalink: Blogging"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This blog has taken a bit of a backseat in 2018 so I want to try and refocus it for 2019. My commitment is for 12 blog posts in 2019, that is one a month. It doesn’t sound like much but I know how easily life can get in the way.&lt;/p&gt;
&lt;p&gt;Having said that my log has had record views this year. 7159 views. However I believe this number to be incorrect and has been inflated by my app development and some of the automated processes taking place.&lt;/p&gt;
&lt;h2 id="routine"&gt;Routine&lt;a class="anchor ms-1" href="#routine" aria-label="Permalink: Routine"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Last goal is to try a get more of a routine going. With two small boys, one of which is starting school in September a routine is going to be essential and will allow all of us all a chance to get more things done.&lt;/p&gt;</description></item></channel></rss>