diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cc58966..7acaf7a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -56,8 +56,8 @@ jobs: echo "Manifest version: $MANIFEST_VERSION" # check for beta versions first - if [[ "$MANIFEST_VERSION" == *-beta* ]]; then - echo "❌ Release workflow is not supported for beta versions. Manifest version ($MANIFEST_VERSION) is not ready for publishing." + if [[ "$MANIFEST_VERSION" != ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "❌ Manifest version ($MANIFEST_VERSION) is not a valid semantic version. Expected format: x.y.z" exit 1 fi @@ -106,6 +106,7 @@ jobs: --api-key="$AMO_JWT_ISSUER" \ --api-secret="$AMO_JWT_SECRET" \ --channel=listed \ + --approval-timeout=0 \ --source-dir="./${{ matrix.browser }}-extension" - name: Zip Chrome extension if: ${{ matrix.browser == 'chrome' }} diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e73100b..589a970 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -13,7 +13,9 @@ - [Prettier](#prettier) - [Linting](#linting) - [Testing](#testing) -- [CI Integration](#ci-integration) +- [Continuous Integration and Deployment](#continuous-integration-and-deployment) + - [Build](#build) + - [Deployment](#deployment) - [Open-Source Software compliance](#open-source-software-compliance) - [reuse](#reuse) - [Licensing](#licensing) @@ -124,9 +126,9 @@ The command runs all tests defined in the root 'test' folder and generates a cov npm run test ``` -## CI Integration +## Continuous Integration and Deployment -All CI workflows are located in `.github/workflows` +All CI/CD workflows are located in `.github/workflows` | name | on | output | artifacts | | :---------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | :---------- | :----------------------- | @@ -137,27 +139,63 @@ All CI workflows are located in `.github/workflows` Those workflows are running automatically after having some changes to the remote repository. -- `build` - - provides its artifacts additionally after each execution - - firefox - - chrome -- `deploy` - - Chrome - - a Google Chrome developer account is required - - any secrets that are necessary for the publication process are set as `Actions secret` - - any additional information, see [Publish in the Chrome Web Store](https://developer.chrome.com/docs/webstore/publish) - - after publishing the application, a review is mostly outstanding and has to be published - manually afterward - - to automatically publish an application after the review, check "Publish '' - automatically after it has passed review" when submitting to review - - Firefox - - a mozilla developer account is required - - any secrets that are necessary for the publication process are set as `Actions secret` - - any additional information, see [Submitting an add-on](https://extensionworkshop.com/documentation/publish/submitting-an-add-on/) - - after publishing the application, a review is usually pending and will be published afterward - - _Note_: - - the add-on may be subject to additional review. - - you will receive a notification about the outcome of the review at a later time. +### Build + +The project can be built using the [CI](../.github/workflows/build.yml) or locally running the +corresponding `npm` command + +```powershell +# chrome +npm run build:chrome + +# firefox +npm run build:firefox +``` + +When running the build process via [GitHub action](https://github.com/tracetronic/ecu.test-diff/actions/workflows/build.yml), it will provide a +build artifact for each browser (firefox/chrome). + +### Deployment + +To publish a new release see the following workflow. All changes will be done on `main` branch: + +- increase the extension version tag within the [manifest file](../static/manifest.json) + - version schema -> `...` + - for more information about beta versioning see [version format](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version#version_format) + - upgrade the version tag for a release by deleting the `beta version` flag to .. + - increase the specific version + | old | new | + | :------------------------ | :-------------------------- | + | `..` | `..` | + | `..` | `..0` | + | `..` | `.0.0` | +- commit with `Prepare release version ` +- create next tag for latest commit -> `ecu-test-diff-[0-9]+.[0-9]+.[0-9]+` +- push changes & the created tag +- create new [release](https://github.com/tracetronic/ecu.test-diff/releases) from existing tag after all checks are successful +- increase the extension version tag within the [manifest file](../static/manifest.json) for next beta version + - `` -> `.0` +- commit with `Prepare for next development cycle` and push + +See the following store-specific information, to handle release specification individually (if needed) + +**Chrome Web Store** + +- a Google Chrome developer account is required +- any secrets that are necessary for the publication process are set as `Actions secret` +- any additional information, see [Publish in the Chrome Web Store](https://developer.chrome.com/docs/webstore/publish) +- after publishing the application, a review is mostly outstanding and will be published + automatically afterward + +**Firefox Add-ons** + +- a mozilla developer account is required +- any secrets that are necessary for the publication process are set as `Actions secret` +- any additional information, see [Submitting an add-on](https://extensionworkshop.com/documentation/publish/submitting-an-add-on/) +- after publishing the application, a review is usually pending and will be published afterward + - _Note_: + - the add-on may be subject to additional review. + - you will receive a notification about the outcome of the review at a later time. ## Open-Source Software compliance diff --git a/docs/images/chrome/configuration.png b/docs/images/chrome/configuration.png index 871cb94..606d514 100644 Binary files a/docs/images/chrome/configuration.png and b/docs/images/chrome/configuration.png differ diff --git a/docs/images/chrome/dialog.png b/docs/images/chrome/dialog.png index ca50d43..12910ad 100644 Binary files a/docs/images/chrome/dialog.png and b/docs/images/chrome/dialog.png differ diff --git a/docs/images/chrome/dialog_download.png b/docs/images/chrome/dialog_download.png index 9ac2c29..47b1deb 100644 Binary files a/docs/images/chrome/dialog_download.png and b/docs/images/chrome/dialog_download.png differ diff --git a/docs/images/chrome/diff_viewer.png b/docs/images/chrome/diff_viewer.png index 3a86ddb..08e146a 100644 Binary files a/docs/images/chrome/diff_viewer.png and b/docs/images/chrome/diff_viewer.png differ diff --git a/package-lock.json b/package-lock.json index 811b1e2..3425963 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,6 @@ "packages": { "": { "name": "ecu.test_diff-extension", - "version": "1.0.0", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", diff --git a/package.json b/package.json index e78f708..1569d61 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "ecu.test_diff-extension", - "version": "1.0.0", "description": "Browser extension to open the diff viewer of tracetronic products ecu.test and trace.check from browser", "scripts": { "start:chrome": "webpack --env TARGET=chrome --watch --config webpack.dev.cjs", "start:firefox": "webpack --env TARGET=firefox --watch --config webpack.dev.cjs", "build:chrome": "webpack --env TARGET=chrome --config webpack.prod.cjs", "build:firefox": "webpack --env TARGET=firefox --config webpack.prod.cjs", + "validate:firefox": "web-ext lint --source-dir=./dist --output=json --pretty --warnings-as-errors", "lint": "eslint --ext .ts,.js --max-warnings=0 .", "prettier:write": "prettier --write", "prettier:check": "prettier --check .", diff --git a/static/manifest.json b/static/manifest.json index 916e7ca..54e2294 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Open with ecu.test diff", "description": "Extension to open the ecu.test/trace.check diff viewer on GitHub/GitLab.", - "version": "1.1.0-beta", + "version": "1.1.0.0", "background": {}, "browser_specific_settings": { "gecko": {