name: CD on: push: branches: - master jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Build id: base_init run: | $(new-object System.Net.WebClient).DownloadFile("https://www.github.com/JFronny/UpTool2/releases/latest/download/Tools.zip", "$($(pwd).Path)\Tools.zip") & "C:\Program Files\7-Zip\7z.exe" x .\Tools.zip rm Tools.zip rm Install.bat rm Remove.bat dotnet build --verbosity:m -p:Configuration=Release cp W32.Test\bin\Release\netcoreapp3.1\package.zip . $file = Get-Item $(Resolve-Path W32.Test\bin\Release\netcoreapp3.1\*.exe).Path $asm = $([Reflection.Assembly]::LoadFile($file.DirectoryName + "\" + $file.BaseName + ".dll")) $asmver = $asm.GetName().Version.ToString() echo "::set-output name=vers::$asmver" - 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: ./package.zip asset_name: package.zip asset_content_type: application/zip - name: Generate XML run: | $file = Get-Item $(Resolve-Path W32.Test\bin\Release\netcoreapp3.1\*.exe).Path $asm = [Reflection.Assembly]::LoadFile($file.DirectoryName + "\" + $file.BaseName + ".dll") [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 = $asm.GetName().Name $app.appendChild($xml.CreateElement("Description")).InnerText = "Collection of Utilities for manipulating Windows" $app.appendChild($xml.CreateElement("Version")).InnerText = "${{ steps.base_init.outputs.vers }}" $app.appendChild($xml.CreateElement("ID")).InnerText = "3191d2f3-bf48-48ea-97a2-59fb32722d0a" $app.appendChild($xml.CreateElement("File")).InnerText = "${{ steps.upload_release_asset.outputs.browser_download_url }}" $app.appendChild($xml.CreateElement("Hash")).InnerText = $(Get-FileHash .\package.zip).Hash $app.appendChild($xml.CreateElement("MainFile")).InnerText = $file.Name echo NULL > app.xml $xml.save($(gi .\app.xml).Fullname) - name: Upload 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: ./app.xml asset_name: app.xml asset_content_type: text/xml - name: Publish nugets run: | $tmp = "${{ steps.base_init.outputs.vers }}" $tmp1 = $tmp.split('.')[2] $tmp2 = $tmp.split('.')[3] $suffix = "$tmp1.$tmp2" cd Misc dotnet pack --version-suffix "$suffix" -c Release -o . dotnet nuget push $(Get-Item $(Resolve-Path *.nupkg).Path).Name -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json cd ..\W32 dotnet pack --version-suffix "$suffix" -c Release -o . dotnet nuget push $(Get-Item $(Resolve-Path *.nupkg).Path).Name -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json cd ..\Commandline dotnet pack --version-suffix "$suffix" -c Release -o . dotnet nuget push $(Get-Item $(Resolve-Path *.nupkg).Path).Name -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json cd ..