<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rob Montague</title>
    <description>The latest articles on DEV Community by Rob Montague (@uofirob).</description>
    <link>https://dev.to/uofirob</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F327974%2Fa1642f85-163b-480d-a683-96051241c618.jpeg</url>
      <title>DEV Community: Rob Montague</title>
      <link>https://dev.to/uofirob</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uofirob"/>
    <language>en</language>
    <item>
      <title>CICD working!</title>
      <dc:creator>Rob Montague</dc:creator>
      <pubDate>Mon, 17 Feb 2020 05:04:04 +0000</pubDate>
      <link>https://dev.to/uofirob/cicd-working-3bf3</link>
      <guid>https://dev.to/uofirob/cicd-working-3bf3</guid>
      <description>&lt;p&gt;I've done it!  I was able to get it done earlier this week, but I wasn't able to write about it until now.  I ended up using some information from this post (&lt;a href="https://dev.to/thisdotmedia/continuously-integrating-angular-with-azure-devops-2k9l"&gt;https://dev.to/thisdotmedia/continuously-integrating-angular-with-azure-devops-2k9l&lt;/a&gt;) and I mixed in the angular cli deploy gh-pages addin (&lt;a href="https://www.npmjs.com/package/angular-cli-ghpages"&gt;https://www.npmjs.com/package/angular-cli-ghpages&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Now when I push to master in my devops git repo, a pipeline will kick off, run the build, lint it, test it, publish the tests and if everything succeeds, push up to my github pages.  &lt;/p&gt;

&lt;p&gt;Here's how I got to where I'm at:&lt;br&gt;
1) Upload newly created angular app to devops git repo.&lt;br&gt;
2) Create a branch for the pipeline work&lt;br&gt;
3) In that branch in devops, go to pipelines and add the following YAML file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Node.js with Angular&lt;/span&gt;
&lt;span class="c1"&gt;# Build a Node.js project that uses Angular.&lt;/span&gt;
&lt;span class="c1"&gt;# Add steps that analyze code, save build artifacts, deploy, and more:&lt;/span&gt;
&lt;span class="c1"&gt;# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript&lt;/span&gt;
&lt;span class="na"&gt;variables&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;buildConfiguration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Release'&lt;/span&gt;

&lt;span class="na"&gt;trigger&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;master&lt;/span&gt;

&lt;span class="na"&gt;pool&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;vmImage&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ubuntu-latest'&lt;/span&gt;

&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;NodeTool@0&lt;/span&gt;
  &lt;span class="na"&gt;inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;versionSpec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;10.x'&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Setup&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Environment'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;npm install -g @angular/cli&lt;/span&gt;
    &lt;span class="s"&gt;npm install&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;npm&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;install'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ng lint&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Code&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Analysis'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ng test --watch=false --codeCoverage=true&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Tests'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PublishTestResults@2&lt;/span&gt;
  &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;succeededOrFailed()&lt;/span&gt;
  &lt;span class="na"&gt;inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;testResultsFormat&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;JUnit'&lt;/span&gt;
    &lt;span class="na"&gt;testResultsFiles&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;**/TESTS-*.xml'&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Publish&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Test&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Results"&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PublishCodeCoverageResults@1&lt;/span&gt;
  &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;succeededOrFailed()&lt;/span&gt;
  &lt;span class="na"&gt;inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;codeCoverageTool&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Cobertura'&lt;/span&gt;
    &lt;span class="na"&gt;summaryFileLocation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;$(Build.SourceDirectory)/coverage/$(Angular_Project_Name)/cobertura-coverage.xml'&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Publish&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Code&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Coverage&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Results'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ng deploy --repo=https://$(Github_Username):$(GITHUB_TOKEN)@github.com/$(Github_Username)/$(Github_Repo_Location)&lt;/span&gt;
  &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;succeeded()&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Build&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Production&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Deploy&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;github.io'&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;task&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PublishBuildArtifacts@1&lt;/span&gt;
  &lt;span class="na"&gt;inputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;PathtoPublish&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;dist/$(Angular_Project_Name)'&lt;/span&gt;
    &lt;span class="na"&gt;ArtifactName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;web-app'&lt;/span&gt;
    &lt;span class="na"&gt;publishLocation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Container'&lt;/span&gt;
  &lt;span class="na"&gt;displayName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Publish&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Artifacts'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I really like that devops allows me to store secure variables!&lt;/p&gt;

&lt;p&gt;I really didn't need that publish artifacts at the end, but I figured I'd try it out. I do have one bug currently, the linting results publish can't find the output file to publish at the moment, so there is probably something wrong with my pathing. &lt;/p&gt;

&lt;p&gt;Once I am able to finish the linting issue, it's on to the fun: Making the website work!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>angular</category>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>Progress!</title>
      <dc:creator>Rob Montague</dc:creator>
      <pubDate>Sun, 09 Feb 2020 06:48:01 +0000</pubDate>
      <link>https://dev.to/uofirob/progress-5p3</link>
      <guid>https://dev.to/uofirob/progress-5p3</guid>
      <description>&lt;p&gt;This week I worked on the personal website a bit more.  I didn't get the automated build/deploy completed, but that's fine.  I ran into issues with forwarding my DNS to my personal server, and enabling SSL.  I set up the SSL security the certificates successfully, but for some reason, when enabling nginx, I disabled the ability to see the website at all due to some sort of port requirement, but I was unable to get 8181 to work.&lt;/p&gt;

&lt;p&gt;So... plan 2.  I decided to use my github.io website as the landing pad.  I followed the instructions here: &lt;a href="http://www.curtismlarson.com/blog/2015/04/12/github-pages-google-domains/"&gt;http://www.curtismlarson.com/blog/2015/04/12/github-pages-google-domains/&lt;/a&gt; &lt;br&gt;
I ran into a speedbump with the redirect however.  Apparently my original redirect to my personal website was stuck in the Google settings and it took almost 48 hours to get the site to finally redirect to Github this morning.&lt;/p&gt;

&lt;p&gt;Tonight I worked on converting my angular-cli generated project away from the starter pages and to start getting my own personal code in there.  I have local versions started, but nothing yet on my github page.  &lt;/p&gt;

&lt;p&gt;My goal for the next week is to setup something basic I can throw up on the github.io so it shows something more than a single line "welcome to my website" that is currently up there now.&lt;/p&gt;

&lt;p&gt;I'd also like to get an azure pipe ready so that when I merge master, that it will compile and push my finalized code to the github.io location. &lt;/p&gt;

</description>
      <category>angular</category>
      <category>github</category>
      <category>devops</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Relearning project setup with git and angular</title>
      <dc:creator>Rob Montague</dc:creator>
      <pubDate>Sun, 02 Feb 2020 05:27:02 +0000</pubDate>
      <link>https://dev.to/uofirob/relearning-project-setup-with-git-and-angular-1e47</link>
      <guid>https://dev.to/uofirob/relearning-project-setup-with-git-and-angular-1e47</guid>
      <description>&lt;p&gt;So I've finally done it. After many months of not programming more than what's necessary for powerapps for work and after years of having a domain with nothing on it, I've decided to start a project to create a personal website based on angular and to document the process here.&lt;/p&gt;

&lt;p&gt;Tonight I started by creating a GitHub repo for the project, updating my node, npm, and angular to latest and clone my repo in vscode. So far so good. I then used angular cli to create my website and serve it locally. Again... Great. &lt;/p&gt;

&lt;p&gt;Now I hit my snag. I try to commit my local changes through vscode git and it doesn't see the new files in my directory. I end up going to GitHub and uploading the files via the website. I pull latest but something wasn't right with vscode still. I ended up downloading GitHub desktop, blowing away my local directory and cloning again from the GitHub app. Because not all the files were pulled I ended up clearing everything from the source directory and recreating the site with angular cli. This time vs code saw the files and I was able to commit and push. Whew!&lt;/p&gt;

&lt;p&gt;My overall goal is to reconnect with more complex coding, learn vscode better, and finally get my personal site up and running. My next goals are to get https certificates for my site, setup GitHub to push the website when I merge to master and then to get the start of the site up on my server. Hopefully I can get to this before next week!&lt;/p&gt;

</description>
      <category>angular</category>
      <category>vscode</category>
      <category>git</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
