Skip to content

⬆️ Bump files with dotnet-file sync #362

⬆️ Bump files with dotnet-file sync

⬆️ Bump files with dotnet-file sync #362

Workflow file for this run

# Builds and runs tests in all three supported OSes
# Pushes CI feed if secrets.SLEET_CONNECTION is provided
name: build
on:
workflow_dispatch:
push:
branches: [ main, dev, 'dev/*', 'feature/*', 'rel/*' ]
paths-ignore:
- changelog.md
- code-of-conduct.md
- security.md
- support.md
- readme.md
pull_request:
types: [opened, synchronize, reopened]
release:
types: [released]
env:
DOTNET_NOLOGO: true
SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }}
defaults:
run:
shell: bash
jobs:
version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.release.outputs.version }}
label: ${{ steps.dev.outputs.label }}
steps:
- name: release
id: release
if: github.event_name == 'release'
run: |
echo "version=${GITHUB_REF#refs/*/v}" >> $GITHUB_OUTPUT
- name: dev
id: dev
if: github.event_name != 'release'
run: |
echo "label=$GITHUB_REF.$GITHUB_RUN_NUMBER" >> $GITHUB_OUTPUT
build:
name: build-${{ matrix.os }}
needs: version
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ 'macOS-latest', 'ubuntu-latest', 'windows-latest' ]
env:
Version: ${{ needs.version.outputs.version }}
VersionLabel: ${{ needs.version.outputs.label }}
steps:
- name: 🤘 checkout
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: 🙏 build
run: dotnet build
- name: 📦 pack
run: dotnet pack
- name: ⬆️ upload
# Only upload package from windows (can't run ILRepack on linux/macOS)
if: success() && matrix.os == 'windows-latest'
uses: actions/upload-artifact@v3
with:
name: pkg
path: bin/*
test:
needs: [version, build]
name: test-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ 'macOS-latest', 'ubuntu-latest', 'windows-latest' ]
env:
Version: ${{ needs.version.outputs.version }}
VersionLabel: ${{ needs.version.outputs.label }}
steps:
- name: 🤘 checkout
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: ⬇️ artifacts
uses: actions/download-artifact@v3
with:
name: pkg
path: bin
- name: 🧪 test
run: dotnet test --nologo -bl --logger:"console;verbosity=normal"
- name: 🐛 logs
uses: actions/upload-artifact@v3
if: runner.debug && always()
with:
name: test-${{ matrix.os }}
path: '*.binlog'
push:
needs: test
if: success()
runs-on: ubuntu-latest
steps:
- name: ⬇️ artifacts
uses: actions/download-artifact@v3
with:
name: pkg
path: bin
- name: 🚀 sleet
env:
SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }}
if: env.SLEET_CONNECTION != ''
run: |
dotnet tool install -g --version 4.0.18 sleet
sleet push ./bin/**/*.nupkg --config none -f --verbose -p "SLEET_FEED_CONTAINER=nuget" -p "SLEET_FEED_CONNECTIONSTRING=${{ secrets.SLEET_CONNECTION }}" -p "SLEET_FEED_TYPE=azure" || echo "No packages found"
publish:
needs: test
if: github.event_name == 'release'
runs-on: ubuntu-latest
steps:
- name: ⬇️ artifacts
uses: actions/download-artifact@v3
with:
name: pkg
path: bin
- name: 🚀 nuget
run: dotnet nuget push ./bin/*.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate
dotnet-format:
runs-on: ubuntu-latest
steps:
- name: 🤘 checkout
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: ✓ ensure format
run: dotnet format --verify-no-changes -v:diag --exclude ~/.nuget