Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Automate release process #32

Closed

Conversation

MikeRatcliffe
Copy link

@MikeRatcliffe MikeRatcliffe commented Sep 14, 2024

Fixes #33

Adds GitHub Actions workflow for automated releases, including:

  • Build for multiple OSs:
    • macOs (Universal dmg for both Intel & M1)
    • Windows exe
    • Linux:
      • AppImage
      • deb
      • rpm
    • Changelog is automatically generated when a version number tag is added to a commit e.g. v0.9.2.

This streamlines the release process and ensures consistent releases across all platforms.

Usage:

  1. Update version number in package.json.
  2. git commit -m "Release v0.9.2"
    git tag v0.9.2 # The version number must be in the format `v1.2.3`.
    git push --tags
    
  3. That's it... a release will be automatically generated along with conventional commit messages and installation packages for each platform.

To ensure we pick up all changes we should probably add the conventional commits pre-commit hook to ensure commit messages contain the required fix, feat etc.

Here is an example of the output:

Screenshot 2024-09-14 at 22 30 47

Adds GitHub Actions workflow for automated releases, including:

- Build for multiple OSs:
   - macOs (Universal `dmg` for both Intel & M1)
   - Windows `exe`
   - Linux:
      - `AppImage`
      - `deb`
      - `rpm`
   - Changelog is automatically generated when a version number tag is added to a commit e.g. `v0.9.2`.

This streamlines the release process and ensures consistent releases across all platforms.

Usage:

1. Update version number in `package.json`.
2. ```
   git commit -m "Release v0.9.2"
   git tag v0.9.2 # The version number must be in the format `v1.2.3`.
   git push --force --tags
   ```
3. That's it... a release will be automatically generated along with conventional commit messages and installation packages for each platform.

To ensure we pick up all changes we should probably add the conventional commits pre-commit hook to ensure commit messages contain the required `fix`, `feat` etc.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 15, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case
@MikeRatcliffe MikeRatcliffe mentioned this pull request Sep 15, 2024
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 15, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case

fix VRPirates#36
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 15, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 17, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 17, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.

build: Add eslint

fix: xxx
@MikeRatcliffe MikeRatcliffe deleted the fix-github-actions branch September 17, 2024 09:52
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 17, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 17, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 18, 2024
In order for the automatic release process VRPirates#32 to work we need to ensure that we always use conventional commits in order for the changelog to be generated correctly. This patch ensures that this is the case.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 30, 2024
This commit introduces commitlint, a tool to enforce conventional commit
messages. This is crucial for the automated release process (issue VRPirates#32)
to work correctly, as it relies on conventional commit messages to
generate the changelog.

The commit includes the following changes:

- Adds `commitlint.config.js` file that defines commitlint's rules for
conventional commits. This config file ensures commits adhere to the
Conventional Commits specification, allowing for automated changelog
generation.
- Adds a `.husky/commit-msg` hook which ensures that commitlint is run
before each commit.
- Adds `@commitlint/cli` and `@commitlint/config-conventional` packages
to `package-lock.json` to enable commitlint functionality.
- Updates `package.json` to add a "commitlint" script, allowing
developers to run commitlint directly.

By enforcing conventional commits, this commit improves the project's
workflow, making releases more reliable and automated. It ensures the
changelog is accurate and consistent, making it easier for developers
and users to understand the project's history and changes.
MikeRatcliffe added a commit to MikeRatcliffe/sidenoder that referenced this pull request Sep 30, 2024
This commit introduces commitlint, a tool to enforce conventional commit
messages. This is crucial for the automated release process (issue VRPirates#32)
to work correctly, as it relies on conventional commit messages to
generate the changelog.

The commit includes the following changes:

- Adds `commitlint.config.js` file that defines commitlint's rules for
conventional commits. This config file ensures commits adhere to the
Conventional Commits specification, allowing for automated changelog
generation.
- Adds a `.husky/commit-msg` hook which ensures that commitlint is run
before each commit.
- Adds `@commitlint/cli` and `@commitlint/config-conventional` packages
to `package-lock.json` to enable commitlint functionality.
- Updates `package.json` to add a "commitlint" script, allowing
developers to run commitlint directly.

By enforcing conventional commits, this commit improves the project's
workflow, making releases more reliable and automated. It ensures the
changelog is accurate and consistent, making it easier for developers
and users to understand the project's history and changes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automate release process
1 participant