From 2f0e865740a2bf59e869c71eaf15ffc8cbe12e69 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Mon, 23 Mar 2020 13:01:40 -0600 Subject: [PATCH 1/8] removes v from tags for release --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a4f4a7a1..32143b8b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -88,8 +88,8 @@ jobs: id: create_release uses: actions/create-release@v1 with: - tag_name: v${{ env.VERSION }} - release_name: v${{ env.VERSION }} + tag_name: ${{ env.VERSION }} + release_name: ${{ env.VERSION }} prerelease: ${{contains('debug', env.BUILD_TYPE)}} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 8e53c2d8041e5f06a70aeb66fe3126b7fa7a2d31 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 13:42:43 -0600 Subject: [PATCH 2/8] updates mutliple parts of the workflow * updates GenerateVersionNumber.ps1 to accurately reflect our desired versioning * updates docker.yml to remove steps to check for master branch. This workflow no longer triggers from master * adds master.yml. This workflow triggers off the creation of a release from the master branch. --- .github/scripts/GenerateVersionNumber.ps1 | 13 +++- .github/workflows/docker.yml | 26 ++------ .github/workflows/master.yml | 74 +++++++++++++++++++++++ 3 files changed, 88 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/master.yml diff --git a/.github/scripts/GenerateVersionNumber.ps1 b/.github/scripts/GenerateVersionNumber.ps1 index d05aecd6..467ce883 100644 --- a/.github/scripts/GenerateVersionNumber.ps1 +++ b/.github/scripts/GenerateVersionNumber.ps1 @@ -7,7 +7,8 @@ Foreach ($version in $latestVersions) { $latestVersion = $version Write-Host "Setting latest version to: $latestVersion" } - } catch { + } + catch { Write-Host "Unable to convert $($version). Skipping" continue; } @@ -18,21 +19,27 @@ $phase = "" $newVersionString = "" switch -regex ($Env:GITHUB_REF) { '^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\/*.' { $phase = 'alpha' + $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER } '^refs\/heads\/release\/*.' { + $splitRef = $Env:GITHUB_REF -split "/" + $version = [version]($splitRef[-1] -replace "v", "") $phase = 'rc' + $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $version.Major, $version.Minor, $version.Build, $phase, $Env:GITHUB_RUN_NUMBER } '^refs\/heads\/development*.' { $phase = 'beta' + $newVersionString = "{0}.{1}.{2}-{3}-{4}" -f $newVersion.Major, $newVersion.Minor, ($newVersion.Build + 1), $phase, $Env:GITHUB_RUN_NUMBER } '^refs\/heads\/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 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a21f018d..61039c49 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -6,14 +6,13 @@ on: - feature/* - hotfix/* - release/* - - master - development 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: PepperDashEssentials - SOLUTION_FILE: PepperDashEssentials + SOLUTION_PATH: PDT.EssentialsPluginTemplate.EPI + SOLUTION_FILE: PDT.EssentialsPluginTemplate.EPI # Do not edit this, we're just creating it here VERSION: 0.0.0-buildtype-buildnumber # Defaults to debug for build type @@ -37,14 +36,7 @@ jobs: 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 - # Set the BUILD_TYPE environment variable - - 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 + # Fetch all tags - name: Fetch tags run: git fetch --tags # Generate the appropriate version number @@ -63,26 +55,16 @@ jobs: - 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_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)" + 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 - # Write the version to a file to be consumed by the push jobs - - name: Write Version - run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt" - # Upload the build output as an artifact - name: Upload Build Output uses: actions/upload-artifact@v1 with: name: Build path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - # Upload the Version file as an artifact - - name: Upload version.txt - uses: actions/upload-artifact@v1 - with: - name: Version - path: ${{env.GITHUB_HOME}}\output\version.txt # Create the release on the source repo - name: Create Release id: create_release diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml new file mode 100644 index 00000000..0bdbd8cc --- /dev/null +++ b/.github/workflows/master.yml @@ -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: PDT.EssentialsPluginTemplate.EPI + SOLUTION_FILE: PDT.EssentialsPluginTemplate.EPI + # 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 }} From 2f3b2adce4b477df266c76cdef387279fcb09d3e Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 13:43:20 -0600 Subject: [PATCH 3/8] fixes issue with docker.yml for path to solution file --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 61039c49..1392369b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -55,7 +55,7 @@ jobs: - 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)" + 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_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)" # Zip up the output files as needed - name: Zip Build Output shell: powershell From 662966d7b4e29b31c6e1e985d4d9572a785605f2 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 13:48:45 -0600 Subject: [PATCH 4/8] fixes solution file name for env variables --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 1392369b..813e1ee5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -11,8 +11,8 @@ on: 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: PDT.EssentialsPluginTemplate.EPI - SOLUTION_FILE: PDT.EssentialsPluginTemplate.EPI + SOLUTION_PATH: PepperDashEssentials + SOLUTION_FILE: PepperDashEssentials # Do not edit this, we're just creating it here VERSION: 0.0.0-buildtype-buildnumber # Defaults to debug for build type From 96a4af40c9810a9adb927f4d94d4f4781b03f355 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 14:18:36 -0600 Subject: [PATCH 5/8] adds version.txt output back in --- .github/workflows/docker.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 813e1ee5..aa0a528e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -60,6 +60,10 @@ jobs: - name: Zip Build Output shell: powershell run: ./.github/scripts/ZipBuildOutput.ps1 + # Write the version to a file to be consumed by the push jobs + - name: Write Version + run: Write-Output "$($Env:VERSION)" | Out-File -FilePath "$($Env:GITHUB_HOME)\output\version.txt" + # Upload the build output as an artifact - name: Upload Build Output uses: actions/upload-artifact@v1 with: From e0813354d98fdff9f2d34c0ab781d484df40f945 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 14:21:29 -0600 Subject: [PATCH 6/8] really adds uploading version.txt back in --- .github/workflows/docker.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index aa0a528e..b8200229 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -68,7 +68,14 @@ jobs: uses: actions/upload-artifact@v1 with: name: Build - path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip + path: + ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip + # Upload the Version file as an artifact + - name: Upload version.txt + uses: actions/upload-artifact@v1 + with: + name: Version + path: ${{env.GITHUB_HOME}}\output\version.txt # Create the release on the source repo - name: Create Release id: create_release From a74a7036106eb889109832790e4c68edf1549bea Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 14:22:10 -0600 Subject: [PATCH 7/8] puts path for .zip file back on the same line as path --- .github/workflows/docker.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b8200229..1160d8ea 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -68,9 +68,8 @@ jobs: uses: actions/upload-artifact@v1 with: name: Build - path: - ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip - # Upload the Version file as an artifact + path: ./${{ env.SOLUTION_FILE}}-${{ env.VERSION}}.zip + # Upload the Version file as an artifact - name: Upload version.txt uses: actions/upload-artifact@v1 with: From e6904ca91c41f21c96a76461cf05e325f4ea0755 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 24 Mar 2020 14:52:42 -0600 Subject: [PATCH 8/8] fixes solution name and path for master workflow...doh --- .github/.vscode/settings.json | 7 ------- .github/workflows/master.yml | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) delete mode 100644 .github/.vscode/settings.json diff --git a/.github/.vscode/settings.json b/.github/.vscode/settings.json deleted file mode 100644 index b29ad32d..00000000 --- a/.github/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "workbench.colorCustomizations": { - "activityBar.background": "#59014E", - "titleBar.activeBackground": "#7C016D", - "titleBar.activeForeground": "#FFF8FE" - } -} \ No newline at end of file diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 0bdbd8cc..42c13136 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -9,8 +9,8 @@ on: 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: PDT.EssentialsPluginTemplate.EPI - SOLUTION_FILE: PDT.EssentialsPluginTemplate.EPI + SOLUTION_PATH: PepperDashEssentials + SOLUTION_FILE: PepperDashEssentials # Do not edit this, we're just creating it here VERSION: 0.0.0-buildtype-buildnumber # Defaults to debug for build type @@ -51,7 +51,7 @@ jobs: - 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)" + 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_FILE).sln"" -BuildSolutionConfiguration $($ENV:BUILD_TYPE)" # Zip up the output files as needed - name: Zip Build Output shell: powershell