Release #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/**/*') }}" | |
lookup-only: true | |
- 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 |