PowerShell is a task automation and configuration management framework from Microsoft
It consisting of a command-line shell and associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform on August 2016 with the introduction of PowerShell Core. This shell is based on the .NET framework, and it includes a command-line shell and a scripting language.
Powershell contains hundreds of commands, which are called Cmdlets. We can easely list them all with
Get-Command -Type Cmdlet
In this example I will show you how I made a simple automation process to build and publish this blog, which is made in GatsbyJS and published at github pages.
First part of the script, it cleans and build the react app (gatsbyjs project)
gatsby clean gastby build
Then it will wipe the old build, which was cloned on a directory. Keep in mind that I had to keep the .git folder, so we are passing a parameter to exclude the .git folder while cleaning all other files on C:\git\github.io\ recursively
Remove-Item -recurse C:\git\github.io\* -exclude C:\git\github.io\.git\
Then it will create a file named CNAME and it will add a text called code.report inside
New-Item C:\git\github.io\CNAME Set-Content C:\git\github.io\CNAME 'code.report'
The last thing I had to do is to copy all the contents of the gatsby build located on C:\git\cdrp\public* onto C:\git\github.io, the -Recurse parameter states that the copy must include all files and subfolders
Copy-Item -Path C:\git\cdrp\public\* -Destination C:\git\github.io\ -Recurse