Skip to content

Commit

Permalink
feat(ci): adds more CI validations, introduces semantic release (#74)
Browse files Browse the repository at this point in the history
- Adds eslint check on before commit
- Adds commit lint on before commit and in CI
- Adds eslint on before commit and in CI
- Uses semantic release
  • Loading branch information
ygrishajev committed Apr 15, 2024
1 parent 7f11ac8 commit e74984d
Show file tree
Hide file tree
Showing 19 changed files with 11,940 additions and 4,791 deletions.
13 changes: 11 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }]
}
"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }],
"@typescript-eslint/no-explicit-any": "warn"
},
"overrides": [
{
"files": ["*.js"],
"rules": {
"@typescript-eslint/no-var-requires": "off"
}
}
]
}
30 changes: 0 additions & 30 deletions .github/workflows/build.yml

This file was deleted.

36 changes: 0 additions & 36 deletions .github/workflows/npm.yml

This file was deleted.

41 changes: 41 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Release from Master on Push

on:
push:
branches:
- main
env:
HUSKY: 0

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
ref: main

- name: Setup Node.js
if: steps.changes.outputs.ts == 'true'
uses: actions/setup-node@v4
with:
node-version: 18.0.0
cache: npm

- name: Install dependencies
run: npm install

- name: Test
run: npm run test:cov

- name: Release npm package
uses: cycjimmy/semantic-release-action@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Upload Test Coverage
uses: codecov/codecov-action@v4
with:
files: ./ts/coverage
token: ${{ secrets.CODECOV_TOKEN }}
42 changes: 42 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Validate

on:
pull_request:
branches: [ main ]

env:
HUSKY: 0

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18.0.0
cache: npm

- name: Install dependencies
run: npm install

- name: Fetch other branches for commitlint
run: git fetch --prune --unshallow

- name: Validate PR commits with commitlint
if: github.event_name == 'pull_request'
run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose

- name: Validate code style
run: npm run lint

- name: Test
run: npm run test:cov

- name: Upload Test Coverage
uses: codecov/codecov-action@v4
with:
files: ./ts/coverage
token: ${{ secrets.CODECOV_TOKEN }}
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm run commitlint ${1}
31 changes: 31 additions & 0 deletions .releaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/changelog",
{
"changelogFile": "CHANGELOG.md"
}
],
[
"@semantic-release/npm",
{
"tarballDir": "package"
}
],
[
"@semantic-release/github",
{
"assets": "package/*.tgz"
}
],
"@semantic-release/git"
],
"branches": [
{
"name": "main"
}
],
"preset": "conventionalcommits"
}
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,29 @@ const signedMessage = await client.signAndBroadcast(

Additional examples can be found in the [examples directory]( https://github.com/ovrclk/akashjs/tree/main/)

## contributing
## Contribution Guidelines

### Project Stack

This repository is primarily written in TypeScript and uses Node.js version 18. We use Webpack 5 for UMD bundling. These tools ensure that our development environment is consistent and our builds are stable.

### Automated CI Checks and Releases

Our project enforces high standards of code quality and consistency to ensure that all contributions adhere to our guidelines and maintain a high level of reliability. Here's what you should be aware of when contributing to our repository:

- **Code Linting**: We use ESLint to analyze the code for potential errors and coding style issues. This ensures that all contributions maintain a consistent style and follow best practices.

- **Code Formatting**: Prettier is configured to format code automatically. This helps keep our codebase clean and readable without requiring manual adjustments for styling.

- **Commit Linting**: All commit messages must adhere to the Conventional Commits specification. This is enforced through automated linting of commits, helping us keep our project history clear and easy to navigate.

- **Automated Testing**: Upon creating a pull request, automated tests are run to verify that the new code does not break any existing functionality and meets all testing standards.

- **Semantic Release**: When changes are merged into the `main` branch, a semantic release process is triggered. This process automatically determines version numbers and generates changelogs based on the commit messages, streamlining the release process and ensuring consistent versioning.

- **Continuous Integration**: Our CI workflows are designed to validate pull requests and manage releases. They perform multiple checks including fetching other branches for commit validation, linting, and testing code coverage before merging changes.

### Contributing

PRs are welcome! By adhering to these guidelines and leveraging our automated systems, we can maintain a high-quality codebase and streamline our development processes. We appreciate your contributions to making this project even better!

This repository uses node 16, and yarn 1.2+, webpack 5 for umd bundling and is written in typescript. PRs are welcome.
1 change: 1 addition & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = { extends: ["@commitlint/config-conventional"] };
Loading

0 comments on commit e74984d

Please sign in to comment.