Complete implementation of Issue #9: Multi-template system with comprehensive CLI features, cross-platform testing, project-specific configuration files, OS-specific git integration, and markdown as default template #68
Workflow file for this run
This file contains hidden or 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
| # yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json | |
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - release/* | |
| paths-ignore: | |
| - '**/*.md' | |
| - '**/*.gitignore' | |
| - '**/*.gitattributes' | |
| pull_request: | |
| branches: | |
| - master | |
| - release/* | |
| paths-ignore: | |
| - '**/*.md' | |
| - '**/*.gitignore' | |
| - '**/*.gitattributes' | |
| jobs: | |
| build: | |
| if: github.event_name == 'push' && contains(toJson(github.event.commits), '***NO_CI***') == false && contains(toJson(github.event.commits), '[ci skip]') == false && contains(toJson(github.event.commits), '[skip ci]') == false | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| dotnet: ['8.0.x', '9.0.x'] | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
| DOTNET_NOLOGO: true | |
| DOTNET_GENERATE_ASPNET_CERTIFICATE: false | |
| DOTNET_ADD_GLOBAL_TOOLS_TO_PATH: false | |
| DOTNET_MULTILEVEL_LOOKUP: 0 | |
| steps: | |
| - name: checkout code | |
| uses: actions/checkout@v4 | |
| - name: setup .net core sdk | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: ${{ matrix.dotnet }} | |
| - name: dotnet build | |
| run: dotnet build solrevdev.seedfolder.sln --configuration Release | |
| - name: run integration tests (linux/mac) | |
| if: matrix.os != 'windows-latest' | |
| run: ./tests/integration-test.sh | |
| - name: run integration tests (windows) | |
| if: matrix.os == 'windows-latest' | |
| run: powershell -File tests/integration-test.ps1 | |
| - name: dotnet pack | |
| run: dotnet pack solrevdev.seedfolder.sln -c Release --no-build --include-source --include-symbols | |
| - name: setup nuget | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.os == 'ubuntu-latest' && matrix.dotnet == '8.0.x' | |
| uses: nuget/setup-nuget@v1 | |
| with: | |
| nuget-version: latest | |
| - name: Publish NuGet | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.os == 'ubuntu-latest' && matrix.dotnet == '8.0.x' | |
| uses: rohith/[email protected] | |
| with: | |
| PROJECT_FILE_PATH: src/solrevdev.seedfolder.csproj # Relative to repository root | |
| # VERSION_FILE_PATH: Directory.Build.props # Filepath with version info, relative to repository root. Defaults to project file | |
| # VERSION_REGEX: <Version>(.*)<\/Version> # Regex pattern to extract version info in a capturing group | |
| # TAG_COMMIT: true # Flag to enable / disable git tagging | |
| # TAG_FORMAT: v* # Format of the git tag, [*] gets replaced with version | |
| NUGET_KEY: ${{secrets.NUGET_API_KEY}} # nuget.org API key | |
| PACKAGE_NAME: solrevdev.seedfolder | |