Skip to content

Release

Release #18

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
release-version:
description: 'Release version'
required: true
default: '0.0.1'
push:
tags:
- '*'
env:
release-version: ${{ github.event.inputs.release-version || github.ref_name }}
jobs:
test:
name: Test ${{github.ref_name}}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- name: Check permissions
if: github.event.inputs.release-version && github.actor != 'Serg046'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh run cancel ${{ github.run_id }} && gh run watch ${{ github.run_id }}
exit 0
- name: Install .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
2.x
9.x
- name: Install libssl
run: |
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
- name: Test
run: dotnet test
release:
name: Release ${{github.ref_name}}
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main
- name: Set the package release version
uses: jacobtomlinson/gha-find-replace@v3
with:
find: "<Version>.*</Version>"
replace: "<Version>${{env.release-version}}</Version>"
include: "dotMap/dotMap.csproj"
regex: true
- name: Remove opening div tag
uses: jacobtomlinson/gha-find-replace@v3
with:
find: '<div align="center">'
replace: ''
include: "README.md"
regex: false
- name: Remove closing div tag
uses: jacobtomlinson/gha-find-replace@v3
with:
find: '</div>'
replace: ''
include: "README.md"
regex: false
- name: Convert svg icon to png for the nuget
run: |
sudo apt install librsvg2-bin
rsvg-convert -o ${{github.workspace}}/docs/images/logo.png ${{github.workspace}}/docs/images/logo.svg
- name: Build and pack
run: dotnet pack dotMap/dotMap.csproj -c Release
- name: Publish to nuget.org
run: dotnet nuget push dotMap/bin/Release/dotMap.${{env.release-version}}.nupkg --api-key "${{secrets.NUGET_API_KEY}}" --source https://api.nuget.org/v3/index.json
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
name: NuGet packages
path: |
dotMap/bin/Release/dotMap.${{env.release-version}}.nupkg
dotMap/bin/Release/dotMap.${{env.release-version}}.snupkg
- name: Save and push the new version
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add dotMap/dotMap.csproj
git commit -m "Release v${{env.release-version}}"
git push