Skip to content

mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid

Repository files navigation

GitHub Configuration

This directory contains GitHub-specific configuration files for CI/CD, issue templates, and automation.

Workflows

CI Workflow (workflows/ci.yml)

Triggers: Push to main/develop, Pull requests, Manual dispatch

What it does:

  • Builds the project on multiple OS (Ubuntu, Windows, macOS)
  • Tests against .NET 6.0, 7.0, 8.0, and 9.0
  • Runs code quality analysis
  • Creates NuGet packages for main branch pushes
  • Runs integration tests with Red Hat Data Grid
  • Uploads code coverage reports

Matrix Strategy:

  • Operating Systems: Ubuntu, Windows, macOS
  • .NET Versions: 6.0.x, 7.0.x, 8.0.x, 9.0.x

Release Workflow (workflows/release.yml)

Triggers: Release published, Manual dispatch

What it does:

  • Builds the project
  • Runs tests
  • Creates NuGet package with version from tag or input
  • Publishes to NuGet.org
  • Uploads artifacts

Required Secrets:

  • NUGET_API_KEY - Your NuGet.org API key

CodeQL Workflow (workflows/codeql.yml)

Triggers: Push to main, Pull requests, Weekly schedule

What it does:

  • Performs static code analysis for security vulnerabilities
  • Scans for code quality issues
  • Uploads results to GitHub Security tab

Stale Bot Workflow (workflows/stale.yml)

Triggers: Daily at midnight, Manual dispatch

What it does:

  • Marks issues/PRs as stale after 60 days of inactivity
  • Closes stale items after 14 additional days
  • Exempts pinned, security, and enhancement labels

Dependabot (dependabot.yml)

Automatically creates PRs to update:

  • NuGet package dependencies (weekly)
  • GitHub Actions versions (weekly)

Issue Templates

Bug Report (ISSUE_TEMPLATE/bug_report.md)

Template for reporting bugs with:

  • Environment details
  • Steps to reproduce
  • Expected vs actual behavior
  • Logs and screenshots

Feature Request (ISSUE_TEMPLATE/feature_request.md)

Template for suggesting features with:

  • Problem description
  • Proposed solution
  • Use case examples
  • Willingness to contribute

Pull Request Template (pull_request_template.md)

Standard PR template including:

  • Change description
  • Type of change
  • Testing details
  • Checklist for contributors

Setting Up CI/CD

1. Configure Secrets

Go to your repository Settings → Secrets and variables → Actions, and add:

NUGET_API_KEY=your-nuget-api-key
CODECOV_TOKEN=your-codecov-token (optional)

2. Enable Workflows

Workflows are automatically enabled when you push to GitHub. You can manage them in the Actions tab.

3. Configure Branch Protection

Recommended branch protection rules for main:

  • Require pull request reviews before merging
  • Require status checks to pass before merging:
    • Build and Test (all matrix combinations)
    • Code Quality Analysis
    • Integration Tests
  • Require branches to be up to date before merging
  • Require conversation resolution before merging

4. Enable Dependabot

Dependabot is automatically enabled with the dependabot.yml configuration.

5. Enable CodeQL

CodeQL is automatically enabled for security scanning.

Manual Workflow Dispatch

Some workflows can be triggered manually:

  1. Go to Actions tab
  2. Select the workflow
  3. Click "Run workflow"
  4. Fill in required inputs (if any)

Badges

Add these badges to your README:

[![CI](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/workflows/CI/badge.svg)](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/actions/workflows/ci.yml)
[![Release](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/workflows/Release/badge.svg)](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/actions/workflows/release.yml)
[![CodeQL](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/workflows/CodeQL/badge.svg)](https://github.com/mohamedhabibwork/Volo.Habib.Abp.Caching.RedHatDataGrid/actions/workflows/codeql.yml)

Workflow Status

View workflow runs and their status in the Actions tab of your repository.

Troubleshooting

Build Fails on Specific .NET Version

Check the build logs for specific errors. You may need to:

  • Update package versions for compatibility
  • Add conditional compilation symbols
  • Check API availability across versions

Integration Tests Fail

Ensure:

  • Red Hat Data Grid service starts correctly
  • Health check passes before tests run
  • Connection parameters are correct

Release Workflow Fails

Check:

  • NUGET_API_KEY secret is configured
  • Package version doesn't conflict with existing versions
  • All required files are included in the package

Contributing

When adding new workflows:

  1. Document them in this README
  2. Add appropriate status checks
  3. Test thoroughly before merging
  4. Update branch protection rules if needed

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published