Skip to content

Release

Release #26

Workflow file for this run

name: "Release"
on:
workflow_dispatch:
schedule:
- cron: "0 0 1 * *" # First day of every month
jobs:
build-job:
name: "Build"
uses: "./.github/workflows/build.yml"
release-job:
name: "Release .NET solution"
needs: [build-job]
runs-on: ubuntu-latest
steps:
- name: "Clone Git repository"
uses: actions/checkout@master
with:
submodules: "recursive"
- name: "Cache files for release"
id: cache
uses: actions/cache@v3
with:
path: "./gitignore" # We don't actually care about what gets in this cache, just the key
key: "cache-${{ hashFiles('src/**/*') }}-${{ hashFiles('ext/**/*') }}-${{ hashFiles('.github/**/*') }}"
- name: "Download native libraries (win-x64)"
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/download-artifact@v1
with:
name: "native-libraries-win-x64"
path: "./lib"
- name: "Download native libraries (osx)"
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/download-artifact@v1
with:
name: "native-libraries-osx"
path: "./lib"
- name: "Download native libraries (linux-x64)"
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/download-artifact@v1
with:
name: "native-libraries-linux-x64"
path: "./lib"
- name: ".NET pack"
if: steps.cache.outputs.cache-hit != 'true'
run: dotnet pack "./src/cs" --nologo --verbosity minimal --configuration Release -p:PackageVersion="$(date +'%Y.%m.%d')" -p:RepositoryBranch="${{ github.head_ref || github.ref_name }}" -p:RepositoryCommit="${{ github.sha }}"
- name: "Upload packages to MyGet"
if: github.event_name == 'workflow_dispatch' && steps.cache.outputs.cache-hit != 'true'
env:
MYGET_ACCESS_TOKEN: ${{ secrets.MYGET_ACCESS_TOKEN }}
run: dotnet nuget push "./nupkg/**/*.nupkg" --source https://www.myget.org/F/bottlenoselabs/api/v3/index.json --skip-duplicate --api-key $MYGET_ACCESS_TOKEN
- name: "Upload packages to NuGet"
if: github.event_name == 'schedule' && steps.cache.outputs.cache-hit != 'true'
env:
NUGET_ACCESS_TOKEN: ${{ secrets.NUGET_ACCESS_TOKEN }}
run: dotnet nuget push "./nupkg/**/*.nupkg" --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key $NUGET_ACCESS_TOKEN