diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..d1feb31e --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,42 @@ +name: release-please + +on: + workflow_dispatch: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + release_please_info: ${{ toJSON(steps.release.outputs) }} + steps: + - uses: google-github-actions/release-please-action@v3 + id: release + with: + command: manifest + + release-info: + runs-on: ubuntu-latest + needs: + - release-please + env: + release_please_info: ${{ needs.release-please.outputs.release_please_info }} + steps: + - name: Show Release Please Results + run: echo "$release_please_info" + + # publish: + # needs: + # - release-please + # uses: ./.github/workflows/publish.yml + # secrets: + # PUBLISH_NPM: ${{ secrets.PUBLISH_NPM }} + # if: ${{ needs.release-please.outputs.release_created }} +# cspell:ignore noreply diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index 41dea1d9..6269f398 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -44,6 +44,12 @@ jobs: - name: Build run: | npm run build + - name: Update Workspace + run: | + ./scripts/update-code-workspace.sh + - name: Update Release Please Packages + run: | + ./scripts/gen-release-please-config.sh - name: Has changes run: | git --no-pager diff --compact-summary --exit-code && echo "git_status=clean" >> $GITHUB_ENV || echo "git_status=dirty" >> $GITHUB_ENV diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1 @@ +{} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..98c7fa24 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,186 @@ +{ + "bootstrap-sha": "da45b74973205581be78b6a97ef1bc962ac3d555", + "include-v-in-tag": false, + "tag-separator": "@", + "changelog-sections": [ + { + "type": "feat", + "section": "Features", + "hidden": false + }, + { + "type": "feature", + "section": "Features" + }, + { + "type": "fix", + "section": "Updates and Bug Fixes", + "hidden": false + }, + { + "type": "perf", + "section": "Performance Improvements" + }, + { + "type": "ci", + "section": "Continuous Integration", + "hidden": false + }, + { + "type": "chore", + "section": "Miscellaneous", + "hidden": false + }, + { + "type": "revert", + "section": "Reverts" + }, + { + "type": "docs", + "section": "Documentation" + }, + { + "type": "style", + "section": "Styles", + "hidden": false + }, + { + "type": "refactor", + "section": "Code Refactoring", + "hidden": false + }, + { + "type": "test", + "section": "Tests", + "hidden": false + }, + { + "type": "build", + "section": "Build System", + "hidden": false + }, + { + "type": "", + "section": "Changes", + "hidden": false + } + ], + "packages": { + "extensions/arabic": { + "component": "code-spell-checker-arabic", + "releaseType": "node" + }, + "extensions/bulgarian": { + "component": "code-spell-checker-bulgarian", + "releaseType": "node" + }, + "extensions/catalan": { + "component": "code-spell-checker-catalan", + "releaseType": "node" + }, + "extensions/croatian": { + "component": "code-spell-checker-croatian", + "releaseType": "node" + }, + "extensions/czech": { + "component": "code-spell-checker-czech", + "releaseType": "node" + }, + "extensions/danish": { + "component": "code-spell-checker-danish", + "releaseType": "node" + }, + "extensions/dutch": { + "component": "code-spell-checker-dutch", + "releaseType": "node" + }, + "extensions/esperanto": { + "component": "code-spell-checker-esperanto", + "releaseType": "node" + }, + "extensions/estonian": { + "component": "code-spell-checker-estonian", + "releaseType": "node" + }, + "extensions/french-reforme": { + "component": "code-spell-checker-french-reforme", + "releaseType": "node" + }, + "extensions/french": { + "component": "code-spell-checker-french", + "releaseType": "node" + }, + "extensions/german": { + "component": "code-spell-checker-german", + "releaseType": "node" + }, + "extensions/greek": { + "component": "code-spell-checker-greek", + "releaseType": "node" + }, + "extensions/hebrew": { + "component": "code-spell-checker-hebrew", + "releaseType": "node" + }, + "extensions/italian": { + "component": "code-spell-checker-italian", + "releaseType": "node" + }, + "extensions/medical-terms": { + "component": "code-spell-checker-medical-terms", + "releaseType": "node" + }, + "extensions/norwegian-bokmal": { + "component": "code-spell-checker-norwegian-bokmal", + "releaseType": "node" + }, + "extensions/persian": { + "component": "code-spell-checker-persian", + "releaseType": "node" + }, + "extensions/polish": { + "component": "code-spell-checker-polish", + "releaseType": "node" + }, + "extensions/portuguese-brazilian": { + "component": "code-spell-checker-portuguese-brazilian", + "releaseType": "node" + }, + "extensions/portuguese": { + "component": "code-spell-checker-portuguese", + "releaseType": "node" + }, + "extensions/russian": { + "component": "code-spell-checker-russian", + "releaseType": "node" + }, + "extensions/scientific-terms": { + "component": "code-spell-checker-scientific-terms", + "releaseType": "node" + }, + "extensions/slovenian": { + "component": "code-spell-checker-slovenian", + "releaseType": "node" + }, + "extensions/spanish": { + "component": "code-spell-checker-spanish", + "releaseType": "node" + }, + "extensions/swedish": { + "component": "code-spell-checker-swedish", + "releaseType": "node" + }, + "extensions/turkish": { + "component": "code-spell-checker-turkish", + "releaseType": "node" + }, + "extensions/ukrainian": { + "component": "code-spell-checker-ukrainian", + "releaseType": "node" + }, + "extensions/vietnamese": { + "component": "code-spell-checker-vietnamese", + "releaseType": "node" + } + } +} diff --git a/scripts/code-workspace-packages.jq b/scripts/code-workspace-packages.jq new file mode 100644 index 00000000..506fc381 --- /dev/null +++ b/scripts/code-workspace-packages.jq @@ -0,0 +1,4 @@ +{ version: (.version), dir: (input_filename | sub("/package.json"; "") | sub("[.][/]"; "")), component: (.name) } | +{ + path: .dir +} diff --git a/scripts/gen-release-please-config-packages.jq b/scripts/gen-release-please-config-packages.jq new file mode 100644 index 00000000..084d6581 --- /dev/null +++ b/scripts/gen-release-please-config-packages.jq @@ -0,0 +1,8 @@ +{ version: (.version), dir: (input_filename | sub("/package.json"; "") | sub("[.][/]"; "")), component: (.name) } | +{ + + (.dir): { + component: (.component), + releaseType: "node" + } +} diff --git a/scripts/gen-release-please-config.jq b/scripts/gen-release-please-config.jq new file mode 100644 index 00000000..153c5002 --- /dev/null +++ b/scripts/gen-release-please-config.jq @@ -0,0 +1,21 @@ +{ + "bootstrap-sha": "8ddc057b66a16f494aae11b38ee0256ff55c52ec", + "include-v-in-tag": false, + "tag-separator": "@", + "changelog-sections": [ + { type: "feat", "section": "Features", "hidden": false }, + { type: "feature", "section": "Features" }, + { type: "fix", "section": "Updates and Bug Fixes", "hidden": false }, + { type: "perf", "section": "Performance Improvements" }, + { type: "ci", "section": "Continuous Integration", "hidden": false }, + { type: "chore", "section": "Miscellaneous", "hidden": false }, + { type: "revert", "section": "Reverts" }, + { type: "docs", "section": "Documentation" }, + { type: "style", "section": "Styles", "hidden": false }, + { type: "refactor", "section": "Code Refactoring", "hidden": false }, + { type: "test", "section": "Tests", "hidden": false }, + { type: "build", "section": "Build System", "hidden": false }, + { type: "", "section": "Changes", "hidden": false } + ], + packages: ., +} diff --git a/scripts/gen-release-please-config.sh b/scripts/gen-release-please-config.sh new file mode 100755 index 00000000..88cd7b3a --- /dev/null +++ b/scripts/gen-release-please-config.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +JQ_FILTER_PACKAGES="$SCRIPT_DIR/gen-release-please-config-packages.jq" +JQ_FILTER_CONFIG="$SCRIPT_DIR/gen-release-please-config.jq" + + +echo $(ls -1 extensions/*/package.json) \ + | xargs jq -f $JQ_FILTER_PACKAGES | jq -s add | jq -f $JQ_FILTER_CONFIG > release-please-config.json + +yarn prettier -w r*.json diff --git a/scripts/update-code-workspace.sh b/scripts/update-code-workspace.sh new file mode 100755 index 00000000..7b4e2341 --- /dev/null +++ b/scripts/update-code-workspace.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +JQ_FILTER_PACKAGES="$SCRIPT_DIR/code-workspace-packages.jq" +JQ_FILTER_CONFIG="$SCRIPT_DIR/gen-release-please-config.jq" + + +FOLDERS="$(echo "./package.json" "./generator-cspell-dicts-extensions/package.json" $(ls -1 extensions/*/package.json) \ + | xargs jq -f $JQ_FILTER_PACKAGES \ + | jq -s "sort_by(.path) | { folders: . }")" + +RESULT="$(echo $(cat ./dict-extensions.code-workspace) $FOLDERS | jq -s ".[0] + .[1]" | jq --indent 4 .)" + +echo "$RESULT" > ./dict-extensions.code-workspace