diff --git a/.github/workflows/publish-stable.yml b/.github/workflows/publish-stable.yml new file mode 100644 index 0000000000..37e70e41d1 --- /dev/null +++ b/.github/workflows/publish-stable.yml @@ -0,0 +1,109 @@ +name: Publish stable +on: + workflow_dispatch: + inputs: + slicemachine/adapter-next: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/adapter-nuxt: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/adapter-nuxt2: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/adapter-sveltekit: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/init: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/manager: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slicemachine/plugin-kit: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + slice-machine-ui: + default: decline + type: choice + options: + - major + - minor + - patch + - decline + start-slicemachine: + default: decline + type: choice + options: + - major + - minor + - patch + - decline +jobs: + publish-stable: + if: ${{ startsWith(github.ref, 'refs/heads/main')}} + name: Publish stable + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v3 + - name: Use Node.js + uses: ./.github/actions/setup-node + - name: Install dependencies + run: yarn install + - name: Build essentials + uses: ./.github/actions/build-essential + - name: Run publish script + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + git config user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" + git config user.name "${GITHUB_ACTOR}" + inputs=$(echo '${{ toJSON(github.event.inputs) }}' | jq -c) + package_names=$(echo $inputs | jq -r 'keys | .[]') + specifiers="" + for package_name in $package_names; do + package_release_type=$(echo $inputs | jq -r --arg k "$package_name" '.[$k]') + if [[ $package_name == "slicemachine/"* && $package_release_type != "decline" ]]; then + specifiers+="@$package_name:$package_release_type " + elif [ $package_release_type != "decline" ]; then + specifiers+="$package_name:$package_release_type " + fi + done + yarn publish stable --dry-run $specifiers