name: Release Build on: push: tags: - 'v*' env: TZ: 'Europe/Berlin' LANG: 'de' CONFIGURATION: 'Release' CI_SERVER_HOST: ${{ gitea.server_url }} jobs: build-test-deploy: runs-on: ubuntu steps: - name: Checkout repository code uses: actions/checkout@v6 with: fetch-depth: 0 - name: Setup dotnet uses: actions/setup-dotnet@v5 with: dotnet-version: 10.x cache: false - name: Restore dependencies run: | set -ex dotnet restore -v q dotnet tool restore -v q - name: Setup tools run: | set -ex dotnet tool install dotnet-reportgenerator-globaltool --tool-path /dotnet-tools dotnet tool install docfx --tool-path /dotnet-tools - name: Build solution shell: bash run: | set -ex shopt -s globstar mkdir /artifacts dotnet build -c ${CONFIGURATION} --no-restore --nologo mv ./**/*.nupkg /artifacts/ || true mv ./**/*.snupkg /artifacts/ || true - name: Test solution run: | set -ex dotnet test -c ${CONFIGURATION} --no-build --nologo /p:CoverletOutputFormat=Cobertura /dotnet-tools/reportgenerator "-reports:${{ gitea.workspace }}/**/coverage.cobertura.xml" "-targetdir:/reports" "-reportType:TextSummary" - name: Publish packages run: | set -ex dotnet nuget push -k "${{ secrets.NUGET_APIKEY }}" -s https://api.nuget.org/v3/index.json --skip-duplicate /artifacts/*.nupkg - name: Publish documentation env: DOCFX_SOURCE_REPOSITORY_URL: 'https://github.com/AM-WD/AMWD.Protocols.Modbus' run: | set -ex /dotnet-tools/docfx metadata docs/docfx.json /dotnet-tools/docfx build docs/docfx.json tar -C "${{ gitea.workspace }}/docs/_site" -czf "/artifacts/docs.tar.gz" . curl -sSL --no-progress-meter --user "${{ secrets.DOCS_DEPLOY_USER }}:${{ secrets.DOCS_DEPLOY_PASS }}" -F docs=modbus -F dump=@/artifacts/docs.tar.gz "${{ vars.DOCS_DEPLOY_URL }}" - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: artifacts path: | /artifacts/* /reports/Summary.txt