mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-04-05 20:55:01 +08:00
try creating a nightly push to nuget script v1
this is intended to create nightly build with package versions of the form x.y.z-yyyyMMdd.sha and push them to nuget automatically, only where there are new changes per day. since devops is a nightmare and entirely untestable we will have to go through 20 iterations to actually get this to work
This commit is contained in:
parent
53471207df
commit
165bc74c53
16
.github/workflows/check_nightly.yml
vendored
Normal file
16
.github/workflows/check_nightly.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
# https://github.community/t/trigger-action-on-schedule-only-if-there-are-changes-to-the-branch/17887/2
|
||||
check_date:
|
||||
runs-on: ubuntu-latest
|
||||
name: Check latest commit
|
||||
outputs:
|
||||
should_run: ${{ steps.should_run.outputs.should_run }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: print latest_commit
|
||||
run: echo ${{ github.sha }}
|
||||
|
||||
- id: should_run
|
||||
continue-on-error: true
|
||||
name: check latest commit is less than a day ago
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false"
|
37
.github/workflows/nightly_release.yml
vendored
Normal file
37
.github/workflows/nightly_release.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
name: Nightly Release
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
build_and_publish_nightly:
|
||||
needs: check_date
|
||||
if: ${{ needs.check_date.outputs.should_run != 'false' }}
|
||||
runs-on: windows-latest
|
||||
name: build_and_publish_nightly
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
|
||||
- name: Set up dotnet core
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: "2.1.x"
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
|
||||
- name: Write nightly version to projects
|
||||
run: |
|
||||
$newVer = .\tools\generate-nightly-version.ps1; .\tools\set-version.ps1 $newVer
|
||||
|
||||
- name: Restore packages
|
||||
run: dotnet restore tools/UglyToad.PdfPig.Package/UglyToad.PdfPig.Package.sln
|
||||
|
||||
- name: Build package
|
||||
run: dotnet pack -c Release -o package tools/UglyToad.PdfPig.Package/UglyToad.PdfPig.Package.sln
|
||||
|
||||
- name: Publish Nuget to GitHub registry
|
||||
run: dotnet nuget push ./package/*.nupkg --api-key ${NUGET_API_KEY} --source https://api.nuget.org/v3/index.json
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
7
tools/generate-nightly-version.ps1
Normal file
7
tools/generate-nightly-version.ps1
Normal file
@ -0,0 +1,7 @@
|
||||
$toolsRoot = (Split-Path -parent $PSCommandPath)
|
||||
|
||||
$mainVersion = & "$toolsRoot\get-main-version.ps1"
|
||||
$commitHash = (git rev-parse HEAD).Substring(0, 5)
|
||||
$date = [System.DateTime]::Now.ToString('yyyyMMdd')
|
||||
$nightlyVersion = "$mainVersion-$date.$commitHash"
|
||||
Write-Output $nightlyVersion
|
7
tools/get-main-version.ps1
Normal file
7
tools/get-main-version.ps1
Normal file
@ -0,0 +1,7 @@
|
||||
$xml = New-Object XML
|
||||
$xml.Load(".\tools\UglyToad.PdfPig.Package\UglyToad.PdfPig.Package.csproj")
|
||||
$current = $xml.Project.PropertyGroup[0].Version
|
||||
$hyphenIndex = $current.IndexOf('-')
|
||||
$len = If ($hyphenIndex -lt 0) { $current.Length } Else { $hyphenIndex }
|
||||
$version = $current.Substring(0, $len)
|
||||
Write-Output $version
|
@ -1,5 +1,5 @@
|
||||
param (
|
||||
[Parameter(Position=0,mandatory=$true)]
|
||||
[Parameter(Position = 0, mandatory = $true)]
|
||||
[string]$version
|
||||
)
|
||||
|
||||
@ -12,4 +12,11 @@ $projs | ForEach-Object {
|
||||
$xml.Project.PropertyGroup[0].Version = $version
|
||||
$xml.Save($_.FullName)
|
||||
}
|
||||
|
||||
$packageProjectPath = "$root/UglyToad.PdfPig.Package/UglyToad.PdfPig.Package.csproj"
|
||||
$xml = New-Object XML
|
||||
$xml.Load($packageProjectPath)
|
||||
$xml.Project.PropertyGroup[0].Version = $version
|
||||
$xml.Save($packageProjectPath)
|
||||
|
||||
Write-Host $projs.Length
|
Loading…
Reference in New Issue
Block a user