This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-site.git
The following commit(s) were added to refs/heads/main by this push:
new f674214d GitHub workflows on `asf-staging` are not taking effect, copy
them to here
f674214d is described below
commit f674214defe44f4e9671fdb1c4eeefe1d13be0b4
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Mon Jan 29 21:41:27 2024 +0100
GitHub workflows on `asf-staging` are not taking effect, copy them to here
---
.github/workflows/update-stats.yaml | 186 ++++++++++++++++++++++++++++++++++++
1 file changed, 186 insertions(+)
diff --git a/.github/workflows/update-stats.yaml
b/.github/workflows/update-stats.yaml
new file mode 100644
index 00000000..61e16118
--- /dev/null
+++ b/.github/workflows/update-stats.yaml
@@ -0,0 +1,186 @@
+#
+# 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: update-stats
+
+on:
+ workflow_dispatch: {}
+ schedule:
+ - cron: "0 0 1 * 1"
+
+concurrency:
+ group: ${{ github.ref_name }}
+ cancel-in-progress: true
+
+permissions: read-all
+
+env:
+ DATA_FILEPATH: stats.csv
+
+jobs:
+
+ collect:
+
+ name: "collect (${{ matrix.proj-spec.id }})"
+
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ proj-spec:
+ - id: chainsaw
+ repo-name: apache/logging-chainsaw
+ repo-branch: master
+ - id: log4cxx
+ repo-name: apache/logging-log4cxx
+ repo-branch: master
+ packaging: cmake
+ - id: log4j-1
+ repo-name: apache/logging-log4j1
+ repo-branch: main
+ - id: log4j-2
+ repo-name: apache/logging-log4j2
+ repo-branch: 2.x
+ - id: log4j-jmx-gui
+ repo-name: apache/logging-log4j-jmx-gui
+ - id: log4j-kotlin
+ repo-name: apache/logging-log4j-kotlin
+ - id: log4j-scala
+ repo-name: apache/logging-log4j-scala
+ - id: log4j-transform
+ repo-name: apache/logging-log4j-transform
+ - id: log4j-tools
+ repo-name: apache/logging-log4j-tools
+ - id: log4j-audit
+ repo-name: apache/logging-log4j-audit
+ repo-branch: master
+ - id: log4net
+ repo-name: apache/logging-log4net
+ repo-branch: master
+ packaging: nant
+ - id: log4j-server
+ repo-name: apache/logging-log4j-server
+ repo-branch: master
+
+ env:
+ PROJ_ID: ${{ matrix.proj-spec.id }}
+ REPO_NAME: ${{ matrix.proj-spec.repo-name }}
+ REPO_BRANCH: ${{ matrix.proj-spec.repo-branch || 'main' }}
+ PROJ_PACKAGING: ${{ matrix.proj-spec.packaging || 'maven' }}
+
+ steps:
+
+ - name: Checkout the repository
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #
4.0.0
+ with:
+ repository: ${{ env.REPO_NAME }}
+ ref: ${{ env.REPO_BRANCH }}
+ # Fetch all the history:
+ fetch-depth: 0
+
+ - name: Collect statistics
+ shell: bash
+ run: |
+ case $PROJ_PACKAGING in
+
+ maven)
+ find . -regextype posix-extended -name "pom.xml" -and -not
-regex "(.*/)?target/.*" | while read pomXmlFilepath; do
+
+ # Ignore the artifact, if it is skipped at deployment
+ skipMatchCount=$(python -c "import xml.etree.ElementTree as
ET;
print(len(ET.parse('$pomXmlFilepath').findall('./{*}properties/{*}maven.deploy.skip')))")
+ [ "$skipMatchCount" -gt 0 ] && continue
+
+ # Extract the module name (i.e., `artifactId`)
+ module=$(python -c "import xml.etree.ElementTree as ET;
print(ET.parse('$pomXmlFilepath').findall('./{*}artifactId')[0].text)")
+
+ # Dump statistics of the module folder
+ moduleDir=$(dirname "$pomXmlFilepath")
+ git log --pretty=tformat:"%as %ae" -- "$moduleDir" | while
read instant author; do
+ echo "$PROJ_ID,$module,$instant,$author"
+ done >>"$DATA_FILEPATH"
+
+ done
+ ;;
+
+ *)
+ git log --pretty=tformat:"%as %ae" | while read instant author;
do
+ echo "$PROJ_ID,*,$instant,$author"
+ done >"$DATA_FILEPATH"
+ ;;
+
+ esac
+
+ - name: Upload statistics
+ uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
# 3.1.3
+ with:
+ name: ${{ env.PROJ_ID }}-${{ env.REPO_BRANCH }}-${{
env.DATA_FILEPATH }}
+ path: ${{ env.DATA_FILEPATH }}
+
+ merge:
+
+ needs: collect
+
+ runs-on: ubuntu-latest
+
+ env:
+ DOWNLOAD_DIR: /tmp/stats
+
+ permissions:
+ contents: write
+
+ steps:
+
+ # We could have rolled out our own shell script to read the GPG private
key.
+ # Though we use `actions/setup-java` everywhere for that purpose, and it
simply works.
+ # Plus, it has several security enhancements; cleanup steps for removing
the private key file and the imported keychain, etc.
+ - name: Set up GPG
+ uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0 #
3.7.0
+ with:
+ distribution: temurin
+ java-version: 17
+ java-package: jdk
+ architecture: x64
+ gpg-private-key: ${{ secrets.LOGGING_GPG_SECRET_KEY }}
+
+ - name: Checkout the repository
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #
4.0.0
+ with:
+ ref: activity-monitor
+
+ - name: Set up Git
+ shell: bash
+ run: |
+ # Set up user name and email required for `git commit`
+ git config user.name "ASF Logging Services RM"
+ git config user.email [email protected]
+
+ - name: Download statistics
+ uses:
actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # 3.0.2
+ with:
+ path: ${{ env.DOWNLOAD_DIR }}
+
+ - name: Merge & commit statistics
+ shell: bash
+ run: |
+ ( echo "project,module,instant,author"; find "$DOWNLOAD_DIR" -type f
| xargs cat ) >"$DATA_FILEPATH"
+ export DATA_INSTANT_FILEPATH="stats-instant.txt"
+ echo -n $(date --utc "+%Y-%m-%dT%H:%M:%SZ") >"$DATA_INSTANT_FILEPATH"
+ git add "$DATA_FILEPATH" "$DATA_INSTANT_FILEPATH"
+ if [ -n "$(git status --porcelain)" ]; then
+ git commit -S "$DATA_FILEPATH" "$DATA_INSTANT_FILEPATH" -m "Update
project activity data"
+ git push -f origin
+ fi