Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.2 #257

Merged
merged 18 commits into from
Jan 31, 2021
Merged

v3.2 #257

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions .github/workflows/BuildDev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# This is a basic workflow to help you get started with Actions
name: Dev Branch - Build

# Controls when the action will run
on:
workflow_dispatch:
inputs:
version:
description: 'Do not include the leading V. This will be the next version for the Release, MPB, and DLL'
required: true

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Job 1, Build - Build the Management Pack on Windows Server with Visual Studio
build:
runs-on: windows-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out repository under $GITHUB_WORKSPACE, so job can access it
- uses: actions/checkout@v2
with:
ref: dev

# Add MSBuild to environment path
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

# copy dependencies over
- name: Copy Dependencies folder from the repo to Build for MP signing and show them
run: |
Copy-Item -Path ManagementPack\2016\dependencies -Destination "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\" -Recurse
Get-ChildItem "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\"

# Build the Settings UI dll
- name: Compile SMLetsExchangeConnectorSettingsUI.dll
run: msbuild ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/SMLetsExchangeConnectorSettingsUI.csproj

#change the MPB version
- name: Change the next MPB build version
run: |
[xml]$build = Get-Content ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj
$build.Project.PropertyGroup[0].Version = "${{ github.event.inputs.version }}"
$build.Project.PropertyGroup[1].Copyright = "AdhocAdam, " + (Get-Date).Year + "."
$build.Save("ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj")

# Convert Management Pack Fragments to single XML, seal it to create the MP, bind the DLL to it, and thus create the MPB
- name: Sign the XML to create the MP. Then combine the MP and DLL to create the MPB
run: msbuild ManagementPack/2016/SMLets.Exchange.Connector.sln

#change the Resources.DLL version
- name: Change the SMLets.Exchange.Connector.Resources.dll File Assembly version
run: |
$newVersion = "${{ github.event.inputs.version }}"
$originalAssembly = Get-Content -path ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs
$assemblyFileVersion = $originalAssembly[$originalAssembly.Length - 1]
$originalAssembly.Replace($assemblyFileVersion, '[assembly: AssemblyFileVersion("' + $newVersion + '")]') | Out-File ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs

# Create the SMLets.Exchange.Connector.Resources.dll for those using the connector with the SCSM workflow engine
- name: Compile the SMLets.Exchange.Connector.Resources.dll
run: msbuild ManagementPack\2016\SMLets.Exchange.Connector.Resources\SMLets.Exchange.Connector.Resources.csproj

# create a temp directory to build the SMLets Exchange Connector folder structure
- name: Create a local directory C:\smletsexchangeconnector
run: |
New-Item -Path "C:\smletsexchangeconnector" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack\2016" -ItemType Directory

#copy files to the temp directory to prepare the artifact upload
- name: Copy relevant files to C:\smletsexchangeconnector
run: |
Copy-Item -Path "BouncyCastle.Crypto.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "CONTRIBUTING.md" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "LICENSE" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "MimeKit.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "pii_regex.txt" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector.ps1" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector_customEvents.ps1" -Destination "C:\smletsexchangeconnector\"

Copy-Item -Path "CiresonPortalTasks" -Destination "C:\smletsexchangeconnector" -Recurse
Copy-Item -Path "HTMLEmailTemplates" -Destination "C:\smletsexchangeconnector" -Recurse

Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector.Resources\bin\Debug\SMLets.Exchange.Connector.Resources.dll" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"
Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector\bin\Debug\SMLets.Exchange.Connector.mpb" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"

# publish the build artifact up to GitHub
- name: publish the artifact (folder) back to GitHub
uses: actions/upload-artifact@master
with:
name: SMletsExchangeConnector
path: C:\smletsexchangeconnector\
92 changes: 92 additions & 0 deletions .github/workflows/BuildPrimary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# This is a basic workflow to help you get started with Actions
name: Primary Branch - Build

# Controls when the action will run
on:
workflow_dispatch:
inputs:
version:
description: 'Do not include the leading V. This will be the next version for the Release, MPB, and DLL'
required: true

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Job 1, Build - Build the Management Pack on Windows Server with Visual Studio
build:
runs-on: windows-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out repository under $GITHUB_WORKSPACE, so job can access it
- uses: actions/checkout@v2
with:
ref: primary

# Add MSBuild to environment path
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

# copy dependencies over
- name: Copy Dependencies folder from the repo to Build for MP signing and show them
run: |
Copy-Item -Path ManagementPack\2016\dependencies -Destination "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\" -Recurse
Get-ChildItem "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\"

# Build the Settings UI dll
- name: Compile SMLetsExchangeConnectorSettingsUI.dll
run: msbuild ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/SMLetsExchangeConnectorSettingsUI.csproj

#change the MPB version
- name: Change the next MPB build version
run: |
[xml]$build = Get-Content ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj
$build.Project.PropertyGroup[0].Version = "${{ github.event.inputs.version }}"
$build.Project.PropertyGroup[1].Copyright = "AdhocAdam, " + (Get-Date).Year + "."
$build.Save("ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj")

# Convert Management Pack Fragments to single XML, seal it to create the MP, bind the DLL to it, and thus create the MPB
- name: Sign the XML to create the MP. Then combine the MP and DLL to create the MPB
run: msbuild ManagementPack/2016/SMLets.Exchange.Connector.sln

#change the Resources.DLL version
- name: Change the SMLets.Exchange.Connector.Resources.dll File Assembly version
run: |
$newVersion = "${{ github.event.inputs.version }}"
$originalAssembly = Get-Content -path ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs
$assemblyFileVersion = $originalAssembly[$originalAssembly.Length - 1]
$originalAssembly.Replace($assemblyFileVersion, '[assembly: AssemblyFileVersion("' + $newVersion + '")]') | Out-File ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs

# Create the SMLets.Exchange.Connector.Resources.dll for those using the connector with the SCSM workflow engine
- name: Compile the SMLets.Exchange.Connector.Resources.dll
run: msbuild ManagementPack\2016\SMLets.Exchange.Connector.Resources\SMLets.Exchange.Connector.Resources.csproj

# create a temp directory to build the SMLets Exchange Connector folder structure
- name: Create a local directory C:\smletsexchangeconnector
run: |
New-Item -Path "C:\smletsexchangeconnector" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack\2016" -ItemType Directory

#copy files to the temp directory to prepare the artifact upload
- name: Copy relevant files to C:\smletsexchangeconnector
run: |
Copy-Item -Path "BouncyCastle.Crypto.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "CONTRIBUTING.md" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "LICENSE" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "MimeKit.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "pii_regex.txt" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector.ps1" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector_customEvents.ps1" -Destination "C:\smletsexchangeconnector\"

Copy-Item -Path "CiresonPortalTasks" -Destination "C:\smletsexchangeconnector" -Recurse
Copy-Item -Path "HTMLEmailTemplates" -Destination "C:\smletsexchangeconnector" -Recurse

Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector.Resources\bin\Debug\SMLets.Exchange.Connector.Resources.dll" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"
Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector\bin\Debug\SMLets.Exchange.Connector.mpb" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"

# publish the build artifact up to GitHub
- name: publish the artifact (folder) back to GitHub
uses: actions/upload-artifact@master
with:
name: SMletsExchangeConnector
path: C:\smletsexchangeconnector\
145 changes: 145 additions & 0 deletions .github/workflows/buildrelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# This is a basic workflow to help you get started with Actions
name: Build and Draft Release

# Controls when the action will run
on:
workflow_dispatch:
inputs:
branch:
description: 'Enter the branch name to build the Release from'
required: true
version:
description: 'Do not include the leading V. This will be the next version for the Release, MPB, and DLL'
required: true
prerelease:
description: 'Is this pre-release?'
required: true
default: 'true'

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Job 1, Build - Build the Management Pack on Windows Server with Visual Studio
build:
runs-on: windows-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out repository under $GITHUB_WORKSPACE, so job can access it
- uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.branch }}

# Add MSBuild to environment path
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

# copy dependencies over
- name: Copy Dependencies folder from the repo to Build for MP signing and show them
run: |
Copy-Item -Path ManagementPack\2016\dependencies -Destination "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\" -Recurse
Get-ChildItem "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VSAC\"

# Build the Settings UI dll
- name: Compile SMLetsExchangeConnectorSettingsUI.dll
run: msbuild ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/SMLetsExchangeConnectorSettingsUI.csproj

#change the MPB version
- name: Change the next MPB build version
run: |
[xml]$build = Get-Content ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj
$build.Project.PropertyGroup[0].Version = "${{ github.event.inputs.version }}"
$build.Project.PropertyGroup[1].Copyright = "AdhocAdam, " + (Get-Date).Year + "."
$build.Save("ManagementPack\2016\SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj")

# Convert Management Pack Fragments to single XML, seal it to create the MP, bind the DLL to it, and thus create the MPB
- name: Sign the XML to create the MP. Then combine the MP and DLL to create the MPB
run: msbuild ManagementPack/2016/SMLets.Exchange.Connector.sln

#change the Resources.DLL version
- name: Change the SMLets.Exchange.Connector.Resources.dll File Assembly version
run: |
$newVersion = "${{ github.event.inputs.version }}"
$originalAssembly = Get-Content -path ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs
$assemblyFileVersion = $originalAssembly[$originalAssembly.Length - 1]
$originalAssembly.Replace($assemblyFileVersion, '[assembly: AssemblyFileVersion("' + $newVersion + '")]') | Out-File ManagementPack\2016\SMLets.Exchange.Connector.Resources\Properties\AssemblyInfo.cs

# Create the SMLets.Exchange.Connector.Resources.dll for those using the connector with the SCSM workflow engine
- name: Compile the SMLets.Exchange.Connector.Resources.dll
run: msbuild ManagementPack\2016\SMLets.Exchange.Connector.Resources\SMLets.Exchange.Connector.Resources.csproj

# create a temp directory to build the SMLets Exchange Connector folder structure
- name: Create a local directory C:\smletsexchangeconnector
run: |
New-Item -Path "C:\smletsexchangeconnector" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack" -ItemType Directory
New-Item -Path "C:\smletsexchangeconnector\ManagementPack\2016" -ItemType Directory

#copy files to the temp directory to prepare the artifact upload
- name: Copy relevant files to C:\smletsexchangeconnector
run: |
Copy-Item -Path "BouncyCastle.Crypto.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "CONTRIBUTING.md" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "LICENSE" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "MimeKit.dll" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "pii_regex.txt" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector.ps1" -Destination "C:\smletsexchangeconnector\"
Copy-Item -Path "smletsExchangeConnector_customEvents.ps1" -Destination "C:\smletsexchangeconnector\"

Copy-Item -Path "CiresonPortalTasks" -Destination "C:\smletsexchangeconnector" -Recurse
Copy-Item -Path "HTMLEmailTemplates" -Destination "C:\smletsexchangeconnector" -Recurse

Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector.Resources\bin\Debug\SMLets.Exchange.Connector.Resources.dll" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"
Copy-Item -Path "ManagementPack\2016\SMLets.Exchange.Connector\bin\Debug\SMLets.Exchange.Connector.mpb" -Destination "C:\smletsexchangeconnector\ManagementPack\2016\"

# publish the build artifact up to GitHub
- name: publish the artifact (folder) back to GitHub
uses: actions/upload-artifact@master
with:
name: SMletsExchangeConnector
path: C:\smletsexchangeconnector\

# Job 2, Draft GitHub Release - Create a GitHub Release via Ubuntu and attach the artifact from the previous step
release:
runs-on: ubuntu-latest
needs: [build]
steps:
# create a draft release
- name: Create a Release
id: create_release #this will be used as a variable
uses: actions/create-release@v1.1.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }} #${{ github.ref }}
release_name: SMlets Exchange Connector v${{ github.event.inputs.version }}
body: "release notes go here"
draft: true
prerelease: ${{ github.event.inputs.prerelease }}

# download the Artifacts to Ubuntu that were uploaded in the Windows build step
- uses: actions/download-artifact@v2
id: download #this will be used as a variable
with:
name: SMletsExchangeConnector

# show the results of the download for logging
- name: Display structure of downloaded files
run: ls -R
working-directory: ${{ steps.download.outputs.download-path }}

# zip the directory
- name: Zip the directory
run: |
cd ${{ steps.download.outputs.download-path }}
zip -r smletsexchangeconnector.zip ./

# upload build artifacts to the Release
- name: Upload a Release Asset
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: smletsexchangeconnector.zip
asset_name: smletsexchangeconnector-${{ github.event.inputs.version }}.zip
asset_content_type: application/zip
Loading