This is an automated email from the ASF dual-hosted git repository.

erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-eslint.git


The following commit(s) were added to refs/heads/master by this push:
     new f6122b8  chore(ci): draft release (#61)
f6122b8 is described below

commit f6122b818a41dfca22a6c0a8d637f647d0196225
Author: エリス <[email protected]>
AuthorDate: Tue Jan 27 15:19:55 2026 +0900

    chore(ci): draft release (#61)
---
 .npmignore => .asf-release/.gitkeep |   8 ++-
 .github/workflows/draft-release.yml | 106 ++++++++++++++++++++++++++++++++++++
 .gitignore                          |   4 ++
 .npmignore                          |   3 +
 .npmrc                              |   5 ++
 5 files changed, 123 insertions(+), 3 deletions(-)

diff --git a/.npmignore b/.asf-release/.gitkeep
similarity index 80%
copy from .npmignore
copy to .asf-release/.gitkeep
index cc83ca8..a926db8 100644
--- a/.npmignore
+++ b/.asf-release/.gitkeep
@@ -15,6 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 
-.*
-lcov.info
-spec
+# ---
+# This directory is used as apart of the release process.
+# Package tarballs will be generated in stored temporarily
+# within this directory and should not be commited to repo.
+# ---
diff --git a/.github/workflows/draft-release.yml 
b/.github/workflows/draft-release.yml
new file mode 100644
index 0000000..b277477
--- /dev/null
+++ b/.github/workflows/draft-release.yml
@@ -0,0 +1,106 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Draft Release
+
+on:
+  push:
+    tags:
+      - 'draft/**'
+
+permissions:
+  contents: read
+  id-token: write
+
+jobs:
+  upload-to-atr:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v6
+      - uses: actions/setup-node@v6
+        with:
+          node-version: 24
+
+      - name: Setup environment variables
+        run: |
+          REPO_NAME="${GITHUB_REPOSITORY#*/}"
+          TAG_NAME="${GITHUB_REF#refs/tags/}"
+          TARGET_RELEASE_VERSION="${TAG_NAME#draft/}"
+
+          echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV
+          echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
+          echo "TARGET_RELEASE_VERSION=$TARGET_RELEASE_VERSION" >> $GITHUB_ENV
+
+          echo "REPO_NAME=$REPO_NAME"
+          echo "TAG_NAME=$TAG_NAME"
+          echo "TARGET_RELEASE_VERSION=$TARGET_RELEASE_VERSION"
+
+      - name: Verify Target Release Version
+        run: |
+          PACKAGE_VERSION=$(jq -r '.version' package.json)
+          if [ $PACKAGE_VERSION != "$TARGET_RELEASE_VERSION" ]; then
+            echo "Mismatch version detected between tag version 
($TARGET_RELEASE_VERSION) and package version ($PACKAGE_VERSION)"
+            exit 1
+          fi
+
+          if [ -f "plugin.xml" ]; then
+            PLUGIN_VERSION=$(yq -p=xml -o=json '.plugin.+@version' plugin.xml)
+            if [ $PLUGIN_VERSION != "$TARGET_RELEASE_VERSION" ]; then
+              echo "Mismatch version detected between tag version 
($TARGET_RELEASE_VERSION) and plugin version ($PLUGIN_VERSION)"
+              exit 1
+            fi
+          fi
+
+      - name: Generate "tgz" npm convenience package
+        run: |-
+          npm install
+          NPM_PKG_NAME=$(npm pack)
+          mv ./.asf-release/$NPM_PKG_NAME 
./.asf-release/${REPO_NAME}-npm-${TARGET_RELEASE_VERSION}.tgz
+
+      - name: Generate "tar.gz" source archive
+        run: |-
+          git archive --format=tar.gz \
+            --prefix=${REPO_NAME}-source-${TARGET_RELEASE_VERSION}/ \
+            -o 
./.asf-release/${REPO_NAME}-source-${TARGET_RELEASE_VERSION}.tar.gz \
+            ${TAG_NAME}
+
+      - name: Generate "zip" source archive
+        run: |-
+          git archive --format=zip \
+            --prefix=${REPO_NAME}-source-${TARGET_RELEASE_VERSION}/ \
+            -o 
./.asf-release/${REPO_NAME}-source-${TARGET_RELEASE_VERSION}.zip \
+            ${TAG_NAME}
+
+      - name: Create Sign and Checksum
+        working-directory: .asf-release
+        run: |-
+          for f in *.tar.gz *.tgz *.zip; do
+            [ -e "$f" ] || continue
+            echo "$CORDOVA_GPG_SECRET_KEY" | gpg --batch --import 
--import-options import-show
+            gpg --armor --detach-sign "$f"
+            sha512sum "$f" > "${f}.sha512"
+          done
+        env:
+          CORDOVA_GPG_SECRET_KEY: ${{ secrets.CORDOVA_GPG_SECRET_KEY }}
+
+      - name: Upload to Apache Trusted Release (ATR)
+        uses: 
apache/tooling-actions/upload-to-atr@b7e972c11790ee16eca101900af1b3c7fd1b106e
+        with:
+          project: ${{ env.REPO_NAME }}
+          version: ${{ env.TARGET_RELEASE_VERSION }}
+          src: .asf-release
diff --git a/.gitignore b/.gitignore
index 262fadd..4ba4711 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,3 +76,7 @@ typings/
 
 # next.js build output
 .next
+
+# ASF release workspace
+.asf-release/
+!.asf-release/.gitkeep
diff --git a/.npmignore b/.npmignore
index cc83ca8..0ee16e7 100644
--- a/.npmignore
+++ b/.npmignore
@@ -18,3 +18,6 @@
 .*
 lcov.info
 spec
+
+# ASF release workspace
+.asf-release/
diff --git a/.npmrc b/.npmrc
index 7cff323..6f982f7 100644
--- a/.npmrc
+++ b/.npmrc
@@ -16,3 +16,8 @@
 # under the License.
 
 registry=https://registry.npmjs.org
+
+# ASF release settings
+git-tag-version=false
+preid=dev
+pack-destination=./.asf-release


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to