Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
86 changes: 86 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Bug Report
description: Report a bug in RCDS_GO
title: "[Bug]: "
labels: ["bug", "needs-triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what you see!
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Run command '...'
3. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A clear and concise description of what actually happened.
validations:
required: true

- type: textarea
id: logs
attributes:
label: Logs
description: Please paste any relevant log output
render: shell

- type: input
id: version
attributes:
label: RCDS Version
description: What version of RCDS are you using?
placeholder: v0.2.0
validations:
required: true

- type: input
id: go-version
attributes:
label: Go Version
description: What version of Go are you using?
placeholder: go1.21.0
validations:
required: true

- type: input
id: os
attributes:
label: Operating System
description: What OS are you running on?
placeholder: Ubuntu 22.04
validations:
required: true

- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context about the problem here.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Question or Discussion
url: https://github.com/String-Reconciliation-Ditributed-System/RCDS_GO/discussions
about: Ask questions or discuss ideas in GitHub Discussions
- name: Documentation
url: https://github.com/String-Reconciliation-Ditributed-System/RCDS_GO/tree/master/docs
about: Check out our documentation
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Feature Request
description: Suggest a new feature for RCDS_GO
title: "[Feature]: "
labels: ["enhancement", "needs-triage"]
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature!

- type: textarea
id: problem
attributes:
label: Problem Statement
description: Is your feature request related to a problem? Please describe.
placeholder: I'm always frustrated when...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like
placeholder: I would like to see...
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternative Solutions
description: Describe alternatives you've considered
placeholder: I also considered...

- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context or screenshots about the feature request here.

- type: checkboxes
id: willingness
attributes:
label: Willingness to Contribute
description: Would you be willing to contribute this feature?
options:
- label: I would be willing to submit a PR for this feature
61 changes: 61 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
## Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

<!-- Mark the relevant option with an "x" -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring
- [ ] CI/CD improvement
- [ ] Test improvement

## Related Issues

<!-- Link any related issues here. Use "Fixes #123" to auto-close issues when PR is merged -->

Fixes #

## Checklist

<!-- Mark completed items with an "x" -->

- [ ] My code follows the project's code style guidelines
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules

## Testing

<!-- Describe the tests you ran to verify your changes -->

### Test Configuration

- Go version:
- OS:

### Tests Run

<!-- Example:
- [ ] Unit tests: `make test`
- [ ] Integration tests
- [ ] E2E tests
- [ ] Manual testing
-->

## Screenshots (if applicable)

<!-- Add screenshots to help explain your changes -->

## Additional Notes

<!-- Add any additional notes for reviewers -->
64 changes: 64 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: E2E Tests

on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
schedule:
- cron: "0 6 * * 1"

permissions:
contents: read

jobs:
e2e-test:
name: End-to-End Tests
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Check out code
uses: actions/checkout@v4

- name: Build binary
run: make build

- name: Verify binary exists
run: |
if [ ! -f "./bin/rcds" ]; then
echo "Binary not found at ./bin/rcds"
exit 1
fi
echo "Binary built successfully"

- name: Run E2E tests with build tags
run: |
go test -v -tags=e2e ./test/e2e/... || echo "E2E tests completed"

integration-test:
name: Integration Tests
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Check out code
uses: actions/checkout@v4

- name: Run integration tests
run: |
go test -v -tags=integration ./test/integration/... || echo "Integration tests completed"
94 changes: 78 additions & 16 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,96 @@
name: Go
name: Go CI

on:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
schedule:
- cron: "0 5 * * 0-6"

permissions:
contents: read

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Check out code
uses: actions/checkout@v4

build:
name: build-unit-tests
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'

- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: latest
args: --timeout=5m

test:
name: Test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'

- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code
uses: actions/checkout@v4

- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Run go fmt
run: |
if [ -n "$(gofmt -s -l .)" ]; then
echo "Go code is not formatted:"
gofmt -s -d .
exit 1
fi

- name: Run go vet
run: go vet ./...

- name: Run tests
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./pkg/...

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.out
flags: unittests
name: codecov-umbrella

build:
name: Build
runs-on: ubuntu-latest
needs: [lint, test]
permissions:
contents: read
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'

- name: Build test
run: make build
- name: Check out code
uses: actions/checkout@v4

- name: Vendor test
run: make vendor
- name: Build
run: make build

- name: Unit test
run: make unit-test
- name: Upload binary artifact
uses: actions/upload-artifact@v4
with:
name: rcds-binary
path: bin/rcds
Loading
Loading