updates multiple things

This commit is contained in:
Andrew Welker
2020-03-24 15:06:42 -06:00
parent 541e9af9e9
commit 3c25263ac7
4 changed files with 100 additions and 27 deletions

View File

@@ -7,7 +7,8 @@ Foreach ($version in $latestVersions) {
$latestVersion = $version $latestVersion = $version
Write-Host "Setting latest version to: $latestVersion" Write-Host "Setting latest version to: $latestVersion"
} }
} catch { }
catch {
Write-Host "Unable to convert $($version). Skipping" Write-Host "Unable to convert $($version). Skipping"
continue; continue;
} }
@@ -18,21 +19,27 @@ $phase = ""
$newVersionString = "" $newVersionString = ""
switch -regex ($Env:GITHUB_REF) { switch -regex ($Env:GITHUB_REF) {
'^refs\/heads\/master*.' { '^refs\/heads\/master*.' {
$newVersionString = "{0}.{1}.{2}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1) $newVersionString = "{0}.{1}.{2}" -f $newVersion.Major, $newVersion.Minor, $newVersion.Build
} }
'^refs\/heads\/feature\/*.' { '^refs\/heads\/feature\/*.' {
$phase = 'alpha' $phase = 'alpha'
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
} }
'^refs\/heads\/release\/*.' { '^refs\/heads\/release\/*.' {
$splitRef = $Env:GITHUB_REF -split "/"
$version = [version]($splitRef[-1] -replace "v", "")
$phase = 'rc' $phase = 'rc'
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $version.Major, $version.Minor, $version.Build, $phase, $Env:GITHUB_RUN_NUMBER
} }
'^refs\/heads\/development*.' { '^refs\/heads\/development*.' {
$phase = 'beta' $phase = 'beta'
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
} }
'^refs\/heads\/hotfix\/*.' { '^refs\/heads\/hotfix\/*.' {
$phase = 'hotfix' $phase = 'hotfix'
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
} }
} }
$newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER
Write-Output $newVersionString Write-Output $newVersionString

View File

@@ -1,16 +1,16 @@
# Uncomment these for local testing # Uncomment these for local testing
# $Env:GITHUB_WORKSPACE = "C:\Working Directories\PD\pepperdash-core" # $Env:GITHUB_WORKSPACE = "C:\Working Directories\PD\essentials"
# $Env:SOLUTION_FILE = "PepperDash Core" # $Env:SOLUTION_FILE = "PepperDashEssentials"
# $Env:VERSION = "0.0.0-buildType-test" # $Env:VERSION = "0.0.0-buildType-test"
# Sets the root directory for the operation # Sets the root directory for the operation
$destination = "$($Env:GITHUB_WORKSPACE)\output" $destination = "$($Env:GITHUB_HOME)\output"
New-Item -ItemType Directory -Force -Path ($destination) New-Item -ItemType Directory -Force -Path ($destination)
Get-ChildItem ($destination) Get-ChildItem ($destination)
$exclusions = @(git submodule foreach --quiet 'echo $name') $exclusions = @(git submodule foreach --quiet 'echo $name')
# Trying to get any .json schema files (not currently working) # Trying to get any .json schema files (not currently working)
# Gets any files with the listed extensions. # Gets any files with the listed extensions.
Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)\*" -include "*.clz", "*.cpz", "*.cplz", "*.json" | ForEach-Object { Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)" -include "*.clz", "*.cpz", "*.cplz", "*.json" | ForEach-Object {
$allowed = $true; $allowed = $true;
# Exclude any files in submodules # Exclude any files in submodules
foreach ($exclude in $exclusions) { foreach ($exclude in $exclusions) {
@@ -23,19 +23,19 @@ Get-ChildItem -recurse -Path "$($Env:GITHUB_WORKSPACE)\*" -include "*.clz", "*.c
Write-Host "allowing $($_)" Write-Host "allowing $($_)"
$_; $_;
} }
} | Copy-Item -Destination ($destination) } | Copy-Item -Destination ($destination) -Force
Write-Host "Getting matching files..." Write-Host "Getting matching files..."
# Get any files from the output folder that match the following extensions # Get any files from the output folder that match the following extensions
Get-ChildItem -Path $destination | Where-Object {($_.Extension -eq ".clz") -or ($_.Extension -eq ".cpz" -or ($_.Extension -eq ".cplz"))} | ForEach-Object { Get-ChildItem -Path $destination | Where-Object { (($_.Extension -eq ".clz") -or ($_.Extension -eq ".cpz") -or ($_.Extension -eq ".cplz")) } | ForEach-Object {
# Replace the extensions with dll or xml and create an array # Replace the extensions with dll or xml and create an array
$filenames = @($($_ -replace "cpz|clz|cplz", "dll"), $($_ -replace "cpz|clz|cplz", "xml")) $filenames = @($($_ -replace "cpz|clz|cplz", "dll"), $($_ -replace "cpz|clz|cplz", "xml"))
Write-Host "Filenames:" Write-Host "Filenames:"
Write-Host $filenames Write-Host $filenames
if ($filenames.length -gt 0) { if ($filenames.length -gt 0) {
# Attempt to get the files and return them to the output directory # Attempt to get the files and return them to the output directory
Get-ChildItem -Recurse -Path "$($Env:GITHUB_WORKSPACE)" -include $filenames | Copy-Item -Destination ($destination) Get-ChildItem -Recurse -Path "$($Env:GITHUB_WORKSPACE)" -include $filenames | Copy-Item -Destination ($destination) -Force
} }
} }
Compress-Archive -Path "$($Env:GITHUB_WORKSPACE)\output\*" -DestinationPath "$($Env:GITHUB_WORKSPACE)\$($Env:SOLUTION_FILE)-$($Env:VERSION).zip" -Force Compress-Archive -Path $destination -DestinationPath "$($Env:GITHUB_WORKSPACE)\$($Env:SOLUTION_FILE)-$($Env:VERSION).zip" -Force
Write-Host "Output Contents post Zip" Write-Host "Output Contents post Zip"
Get-ChildItem -Path $destination Get-ChildItem -Path $destination

View File

@@ -6,13 +6,12 @@ on:
- feature/* - feature/*
- hotfix/* - hotfix/*
- release/* - release/*
- master
- development - development
env: env:
# solution path doesn't need slashes unless there it is multiple folders deep # solution path doesn't need slashes unless there it is multiple folders deep
# solution name does not include extension. .sln is assumed # solution name does not include extension. .sln is assumed
SOLUTION_PATH: PepperDash Core SOLUTION_PATH: Pepperdash Core
SOLUTION_FILE: PepperDash Core SOLUTION_FILE: PepperDash Core
# Do not edit this, we're just creating it here # Do not edit this, we're just creating it here
VERSION: 0.0.0-buildtype-buildnumber VERSION: 0.0.0-buildtype-buildnumber
@@ -37,14 +36,7 @@ jobs:
auth_header="$(git config --local --get http.https://github.com/.extraheader)" auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
# Set the BUILD_TYPE environment variable # Fetch all tags
- name: Set Build to Release if triggered from Master
run: |
if("$($Env:GITHUB_REF)".contains("$($Env:RELEASE_BRANCH)")) {
Write-Host "Setting build type to Release"
Write-Output "::set-env name=BUILD_TYPE::Release"
}
# Fetch all tags
- name: Fetch tags - name: Fetch tags
run: git fetch --tags run: git fetch --tags
# Generate the appropriate version number # Generate the appropriate version number
@@ -70,7 +62,7 @@ jobs:
run: ./.github/scripts/ZipBuildOutput.ps1 run: ./.github/scripts/ZipBuildOutput.ps1
# Write the version to a file to be consumed by the push jobs # Write the version to a file to be consumed by the push jobs
- name: Write Version - name: Write Version
run: Write-Output "$($Env:VERSION)" | Out-File -FilePath ".\output\version.txt" run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt"
# Upload the build output as an artifact # Upload the build output as an artifact
- name: Upload Build Output - name: Upload Build Output
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v1
@@ -82,7 +74,7 @@ jobs:
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v1
with: with:
name: Version name: Version
path: ./output/version.txt path: ${{env.GITHUB_HOME}}\output\version.txt
# Create the release on the source repo # Create the release on the source repo
- name: Create Release - name: Create Release
id: create_release id: create_release
@@ -110,11 +102,11 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
# Checkout the repo # Checkout the repo
- name: Checkout Public Builds Repo - name: Checkout Builds Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
token: ${{ secrets.BUILDS_TOKEN }} token: ${{ secrets.BUILDS_TOKEN }}
repository: PepperDash-Engineering/pepperdash-core-builds repository: PepperDash-Engineering/essentials-builds
ref: ${{ Env.GITHUB_REF }} ref: ${{ Env.GITHUB_REF }}
# Download the version artifact from the build job # Download the version artifact from the build job
- name: Download Build Version Info - name: Download Build Version Info
@@ -181,11 +173,11 @@ jobs:
if: contains(github.ref, 'master') || contains(github.ref, 'release') if: contains(github.ref, 'master') || contains(github.ref, 'release')
steps: steps:
# Checkout the repo # Checkout the repo
- name: Checkout Internal Builds Repo - name: Checkout Builds Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
token: ${{ secrets.BUILDS_TOKEN }} token: ${{ secrets.BUILDS_TOKEN }}
repository: PepperDash/PepperDashCore-Builds repository: PepperDash/Essentials-Builds
ref: ${{ Env.GITHUB_REF }} ref: ${{ Env.GITHUB_REF }}
# Download the version artifact from the build job # Download the version artifact from the build job
- name: Download Build Version Info - name: Download Build Version Info

74
.github/workflows/master.yml vendored Normal file
View File

@@ -0,0 +1,74 @@
name: Master Build using Docker
on:
release:
types:
- created
branches:
- master
env:
# solution path doesn't need slashes unless there it is multiple folders deep
# solution name does not include extension. .sln is assumed
SOLUTION_PATH: Pepperdash Core
SOLUTION_FILE: Pepperdash Core
# Do not edit this, we're just creating it here
VERSION: 0.0.0-buildtype-buildnumber
# Defaults to debug for build type
BUILD_TYPE: Release
# Defaults to master as the release branch. Change as necessary
RELEASE_BRANCH: master
jobs:
Build_Project:
runs-on: windows-latest
steps:
# First we checkout the source repo
- name: Checkout repo
uses: actions/checkout@v2
# And any submodules
- name: Checkout submodules
shell: bash
run: |
git config --global url."https://github.com/".insteadOf "git@github.com:"
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
# Fetch all tags
- name: Fetch tags
run: git fetch --tags
# Generate the appropriate version number
- name: Set Version Number
shell: powershell
env:
TAG_NAME: ${{ github.event.release.tag_name }}
run: Write-Output "::set-env name=VERSION::$($Env:TAG_NAME)"
# Use the version number to set the version of the assemblies
- name: Update AssemblyInfo.cs
shell: powershell
run: |
Write-Output ${{ env.VERSION }}
./.github/scripts/UpdateAssemblyVersion.ps1 ${{ env.VERSION }}
# Build the solutions in the docker image
- name: Build Solution
shell: powershell
run: |
Invoke-Expression "docker run --rm --mount type=bind,source=""$($Env:GITHUB_WORKSPACE)"",target=""c:/project"" pepperdash/sspbuilder c:\cihelpers\vsidebuild.exe -Solution ""c:\project\$($Env:SOLUTION_PATH)\$($Env:SOLUTION_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)"
# Zip up the output files as needed
- name: Zip Build Output
shell: powershell
run: ./.github/scripts/ZipBuildOutput.ps1
- name: Upload Build Output
uses: actions/upload-artifact@v1
with:
name: Build
path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
# Upload the build package to the release
- name: Upload Release Package
id: upload_release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
asset_name: ${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}