name: CD on: [push] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2.0.0 - name: Build id: base_init run: | cd $Env:GITHUB_WORKSPACE dotnet build --verbosity:m -p:Configuration=Release cp ".\UpTool build tool\bin\Release\netcoreapp3.1\package.zip" $Env:GITHUB_WORKSPACE\Tools.zip & "C:\Program Files\7-Zip\7z" a .\Release.zip .\UpTool2\bin\Release\netcoreapp3.1\* $asmver = $([Reflection.Assembly]::Loadfile($(pwd).Path + "\\UpTool2\\bin\\Release\\netcoreapp3.1\\UpTool2.dll").GetName().version.ToString()) $pkgtoolver = $([Reflection.Assembly]::Loadfile($(pwd).Path + "\\UpTool build tool\\bin\\Release\\netcoreapp3.1\\pkgtool.dll").GetName().version.ToString()) echo "::set-output name=vers::$asmver" echo "::set-output name=pkgvers::$pkgtoolver" - name: Create Release id: create_release uses: actions/create-release@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.base_init.outputs.vers }} release_name: Release ${{ steps.base_init.outputs.vers }} draft: false prerelease: false - name: Upload Release Asset id: upload_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: ./Release.zip asset_name: Release.zip asset_content_type: application/zip - name: Upload Tool Asset id: upload_tool_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: ./Tools.zip asset_name: Tools.zip asset_content_type: application/zip - name: Create XML run: | [System.XML.XMLDocument]$xml=New-Object System.XML.XMLDocument [System.XML.XMLElement]$app=$xml.CreateElement("app") $xml.appendChild($app) $app.appendChild($xml.CreateElement("Name")).InnerText = "UpTool2 package tools" $app.appendChild($xml.CreateElement("Description")).InnerText = "Tools for automating package creation" $app.appendChild($xml.CreateElement("Version")).InnerText = "${{ steps.base_init.outputs.pkgvers }}" $app.appendChild($xml.CreateElement("ID")).InnerText = "0e35d154-d0d3-45e0-b080-62f521263a44" $app.appendChild($xml.CreateElement("File")).InnerText = "${{ steps.upload_tool_asset.outputs.browser_download_url }}" $app.appendChild($xml.CreateElement("Hash")).InnerText = $(Get-FileHash $Env:GITHUB_WORKSPACE\Tools.zip).Hash echo NULL > tools.xml $xml.save($(gi .\tools.xml).Fullname) [System.XML.XMLDocument]$xml=New-Object System.XML.XMLDocument [System.XML.XMLElement]$app=$xml.CreateElement("meta") $xml.appendChild($app) $app.appendChild($xml.CreateElement("Version")).InnerText = "${{ steps.base_init.outputs.vers }}" $app.appendChild($xml.CreateElement("File")).InnerText = "${{ steps.upload_release_asset.outputs.browser_download_url }}" $app.appendChild($xml.CreateElement("Hash")).InnerText = $(Get-FileHash $Env:GITHUB_WORKSPACE\Release.zip).Hash echo NULL > meta.xml $xml.save($(gi .\meta.xml).Fullname) - name: Upload Meta XML 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: ./meta.xml asset_name: meta.xml asset_content_type: text/xml - name: Upload Tool XML 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: ./tools.xml asset_name: tools.xml asset_content_type: text/xml - name: Build non-generic installers run: | cd $Env:GITHUB_WORKSPACE\Installer & "C:\Program Files\7-Zip\7z" a ..\Installer-generic.zip .\bin\Release\netcoreapp3.1\Installer.exe & "C:\Program Files\7-Zip\7z" a ..\Installer-generic.zip .\bin\Release\netcoreapp3.1\Installer.dll & "C:\Program Files\7-Zip\7z" a ..\Installer-generic.zip .\bin\Release\netcoreapp3.1\Installer.runtimeconfig.json dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true dotnet publish -r win-x86 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true cp .\bin\Release\netcoreapp3.1\win-x64\publish\Installer.exe ..\Installer-x64.exe cp .\bin\Release\netcoreapp3.1\win-x86\publish\Installer.exe ..\Installer-x86.exe cd $Env:GITHUB_WORKSPACE - name: Upload x86 Installer 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: ./Installer-x86.exe asset_name: Installer-x86.exe asset_content_type: application/vnd.microsoft.portable-executable - name: Upload x64 Installer 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: ./Installer-x64.exe asset_name: Installer-x64.exe asset_content_type: application/vnd.microsoft.portable-executable - name: Upload generic Installer 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: ./Installer-generic.zip asset_name: Installer-generic.zip asset_content_type: application/zip