-
Notifications
You must be signed in to change notification settings - Fork 13
Continuous Integration and Delivery
This project uses GitHub Actions to set up Continuous Integration (CI) and Continuous Delivery (CD) workflows for automated building, testing, and releasing of the application.
The first workflow, electron-ci
, is triggered on push
events to the main
and develop
branches. It contains two jobs:
-
build-and-publish
: This job is responsible for building and testing the application on both Windows and macOS platforms. It runs the following steps:- Checks out the repository
- Sets up Node.js with the specified version
- Installs dependencies
- Runs ESLint for code linting
- Builds the application for the respective platform
- Runs end-to-end tests for the respective platform
- Calculates the hash of the built artifacts and saves them to separate files
- Lists the contents of the release directory
- Uploads the built artifacts as GitHub Actions artifacts
-
create-release
: This job depends on thebuild-and-publish
job and is responsible for creating a GitHub release. It performs the following steps:- Checks out the repository
- Retrieves the package version from
package.json
- Calculates the release type and release counter
- Generates release notes based on the release type
- Creates a GitHub release with the calculated release version
- Downloads the artifacts from the
build-and-publish
job - Uploads the downloaded artifacts as release assets
The second workflow, electron-ci-pr
, is triggered on pull_request
events to the develop
branch. This workflow is responsible for building and testing the application for both Windows and macOS platforms on every pull request. It runs the following steps:
- Checks out the repository
- Sets up Node.js with the specified version
- Installs dependencies
- Runs ESLint for code linting
- Builds the application for the respective platform
- Runs end-to-end tests for the respective platform
By using these workflows, the project ensures that the application is always built, tested, and ready for release, thus maintaining a high level of code quality and stability.
Home · User docs · Developer docs · FAQ