name: CD on: [push] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2.0.0 - name: Setup NuGet uses: nuget/setup-nuget@v1.0.2 with: nuget-version: latest - 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 id: package_tool_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 id: 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 id: 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