name: CD on: push: tags: - "*" jobs: build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v2.3.3 - name: Get release version id: get-version uses: dawidd6/action-get-tag@v1 - name: Install .NET (v3.1) uses: actions/setup-dotnet@v1.7.2 with: dotnet-version: 3.1.x - name: Install .NET (v5.0) uses: actions/setup-dotnet@v1.7.2 with: dotnet-version: 5.0.x - name: Build & publish (CLI) run: dotnet publish DiscordChatExporter.Cli/ -o DiscordChatExporter.Cli/bin/Publish/ --configuration Release - name: Build & publish (GUI) run: dotnet publish DiscordChatExporter.Gui/ -o DiscordChatExporter.Gui/bin/Publish/ --configuration Release - name: Pack (CLI) run: Compress-Archive -Path DiscordChatExporter.Cli/bin/Publish/* -DestinationPath DiscordChatExporter.Cli/bin/Publish/Archive.zip -Force shell: pwsh - name: Pack (GUI) run: Compress-Archive -Path DiscordChatExporter.Gui/bin/Publish/* -DestinationPath DiscordChatExporter.Gui/bin/Publish/Archive.zip -Force shell: pwsh - name: Create release id: create_release uses: actions/create-release@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} body: | [Changelog](https://github.com/Tyrrrz/DiscordChatExporter/blob/master/Changelog.md) draft: false prerelease: false - name: Upload release asset (CLI) 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: DiscordChatExporter.Cli/bin/Publish/Archive.zip asset_name: DiscordChatExporter.CLI.zip asset_content_type: application/zip - name: Upload release asset (GUI) 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: DiscordChatExporter.Gui/bin/Publish/Archive.zip asset_name: DiscordChatExporter.zip asset_content_type: application/zip - name: Notify Discord uses: satak/webrequest-action@v1.2.4 with: url: ${{ secrets.DISCORD_WEBHOOK }} method: POST headers: | { "ContentType": "application/json; charset=UTF-8" } payload: | { "content": "**DiscordChatExporter** new version released!\nVersion: `${{ steps.get-version.outputs.tag }}`\nChangelog: " }