litrue-battery-calculator 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ansible-publish.yml +25 -0
- package/.github/workflows/cargo-publish.yml +16 -0
- package/.github/workflows/central-publish.yml +86 -0
- package/.github/workflows/cocoapods-publish.yml +21 -0
- package/.github/workflows/coveralls.yml +38 -0
- package/.github/workflows/docker-publish.yml +27 -0
- package/.github/workflows/helm-publish.yml +33 -0
- package/.github/workflows/hex-publish.yml +29 -0
- package/.github/workflows/npm-publish.yml +24 -0
- package/.github/workflows/nuget-publish.yml +22 -0
- package/.github/workflows/pkg-pr-new.yml +23 -0
- package/.github/workflows/pub-publish.yml +22 -0
- package/.github/workflows/puppet-forge.yml +46 -0
- package/.github/workflows/radicle-publish.yml +57 -0
- package/.github/workflows/rubygems-publish.yml +26 -0
- package/.github/workflows/scorecard.yml +24 -0
- package/.github/workflows/snap.yml +20 -0
- package/.ohwr.yaml +30 -0
- package/.pubignore +13 -0
- package/.readthedocs.yaml +9 -0
- package/CHANGELOG.md +6 -0
- package/Cargo.toml +15 -0
- package/Dockerfile +2 -0
- package/LICENSE +21 -0
- package/LiTrueBatteryCalc.podspec +17 -0
- package/Package.swift +18 -0
- package/README.md +39 -0
- package/Sources/LiTrueBatteryCalc/LiTrueBatteryCalc.swift +16 -0
- package/Sources/LiTrueBatterySpecs/Specs.swift +9 -0
- package/apiary.apib +41 -0
- package/bower.json +25 -0
- package/charts/litrue-battery-calc/Chart.yaml +23 -0
- package/charts/litrue-battery-calc/templates/service.yaml +11 -0
- package/charts/litrue-battery-calc/values.yaml +8 -0
- package/composer.json +22 -0
- package/conf.py +14 -0
- package/docs/index.md +22 -0
- package/galaxy.yml +19 -0
- package/index.js +5 -0
- package/index.md +21 -0
- package/lib/battery_calculator.ex +24 -0
- package/lib/litrue_battery_calc.dart +16 -0
- package/lib/litrue_battery_calc.rb +15 -0
- package/litrue_battery_calc.gemspec +19 -0
- package/litrue_battery_calculation.ipynb +91 -0
- package/main.tf +30 -0
- package/meta/runtime.yml +2 -0
- package/metadata.json +28 -0
- package/mix.exs +45 -0
- package/mkdocs.yml +4 -0
- package/netlify.toml +8 -0
- package/package.json +20 -0
- package/plugins/modules/battery_calc.py +65 -0
- package/pom.xml +29 -0
- package/public/index.html +73 -0
- package/pubspec.yaml +15 -0
- package/snapcraft.yaml +28 -0
- package/src/Calculator.php +25 -0
- package/src/LiTrue.BatteryCalculator/Calculator.cs +28 -0
- package/src/LiTrue.BatteryCalculator/LiTrue.BatteryCalculator.csproj +21 -0
- package/src/lib.rs +17 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Publish to Ansible Galaxy
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Set up Python
|
|
13
|
+
uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: '3.11'
|
|
16
|
+
|
|
17
|
+
- name: Install Ansible-core
|
|
18
|
+
run: pip install ansible-core
|
|
19
|
+
|
|
20
|
+
- name: Build Ansible Collection
|
|
21
|
+
run: ansible-galaxy collection build --output-path ./dist
|
|
22
|
+
|
|
23
|
+
- name: Publish to Ansible Galaxy
|
|
24
|
+
run: |
|
|
25
|
+
ansible-galaxy collection publish ./dist/*.tar.gz --api-key ${{ secrets.GALAXY_API_KEY }}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: Publish to Crates.io
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Install Rust
|
|
13
|
+
uses: dtolnay/rust-toolchain@stable
|
|
14
|
+
|
|
15
|
+
- name: Publish to Crates.io
|
|
16
|
+
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
name: Publish to Maven Central
|
|
2
|
+
on:
|
|
3
|
+
workflow_dispatch:
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
publish:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- name: Checkout
|
|
10
|
+
uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Clean, Sign and Publish
|
|
13
|
+
run: |
|
|
14
|
+
set -e
|
|
15
|
+
# 1. 生成 GPG 密钥并分发公钥
|
|
16
|
+
gpg --batch --passphrase '' --quick-gen-key "LiTrue <asozulujidef01@gmail.com>" default default never
|
|
17
|
+
KEY_ID=$(gpg --list-keys --with-colons asozulujidef01@gmail.com | awk -F: '/^fpr:/ {print $10; exit}')
|
|
18
|
+
gpg --keyserver keyserver.ubuntu.com --send-keys "$KEY_ID" || true
|
|
19
|
+
|
|
20
|
+
# 2. 彻底清理旧 bundle 目录,确保无 com.github 冲突
|
|
21
|
+
rm -rf bundle bundle.zip
|
|
22
|
+
TARGET_DIR="bundle/io/github/chris-ops-sys/litrue-battery-specs/1.0.0"
|
|
23
|
+
mkdir -p "$TARGET_DIR"
|
|
24
|
+
|
|
25
|
+
# 3. 写入严格匹配 io.github.chris-ops-sys 命名空间的规范 pom.xml
|
|
26
|
+
cat << 'EOF' > "$TARGET_DIR/litrue-battery-specs-1.0.0.pom"
|
|
27
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
28
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
29
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
30
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
31
|
+
<modelVersion>4.0.0</modelVersion>
|
|
32
|
+
<groupId>io.github.chris-ops-sys</groupId>
|
|
33
|
+
<artifactId>litrue-battery-specs</artifactId>
|
|
34
|
+
<version>1.0.0</version>
|
|
35
|
+
<packaging>jar</packaging>
|
|
36
|
+
<name>LiTrue Battery Engineering Specs</name>
|
|
37
|
+
<description>Parametric sizing models and datasheets for 11 industrial battery architectures.</description>
|
|
38
|
+
<url>https://www.litruebattery.com/</url>
|
|
39
|
+
<licenses>
|
|
40
|
+
<license>
|
|
41
|
+
<name>The Apache License, Version 2.0</name>
|
|
42
|
+
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
43
|
+
</license>
|
|
44
|
+
</licenses>
|
|
45
|
+
<developers>
|
|
46
|
+
<developer>
|
|
47
|
+
<name>LiTrue Battery</name>
|
|
48
|
+
<email>asozulujidef01@gmail.com</email>
|
|
49
|
+
<organization>LiTrue Battery Technologies</organization>
|
|
50
|
+
<organizationUrl>https://www.litruebattery.com/</organizationUrl>
|
|
51
|
+
</developer>
|
|
52
|
+
</developers>
|
|
53
|
+
<scm>
|
|
54
|
+
<connection>scm:git:git://github.com/chris-ops-sys/battery-calculator.git</connection>
|
|
55
|
+
<developerConnection>scm:git:ssh://github.com:chris-ops-sys/battery-calculator.git</developerConnection>
|
|
56
|
+
<url>https://www.litruebattery.com/</url>
|
|
57
|
+
</scm>
|
|
58
|
+
</project>
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
# 4. 生成规范的 jar 构件
|
|
62
|
+
[ ! -f README.md ] && echo "# LiTrue Battery Specifications" > README.md
|
|
63
|
+
zip -j "$TARGET_DIR/litrue-battery-specs-1.0.0.jar" README.md
|
|
64
|
+
zip -j "$TARGET_DIR/litrue-battery-specs-1.0.0-sources.jar" README.md
|
|
65
|
+
zip -j "$TARGET_DIR/litrue-battery-specs-1.0.0-javadoc.jar" README.md
|
|
66
|
+
|
|
67
|
+
# 5. 全量生成 .asc 签名
|
|
68
|
+
cd "$TARGET_DIR"
|
|
69
|
+
for f in litrue-battery-specs-1.0.0*; do
|
|
70
|
+
gpg --batch --yes --pinentry-mode loopback --passphrase '' -ab "$f"
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
# 6. 生成 sha1 与 md5 校验文件
|
|
74
|
+
for f in litrue-battery-specs-1.0.0*; do
|
|
75
|
+
sha1sum "$f" | cut -d' ' -f1 > "${f}.sha1"
|
|
76
|
+
md5sum "$f" | cut -d' ' -f1 > "${f}.md5"
|
|
77
|
+
done
|
|
78
|
+
|
|
79
|
+
# 7. 纯净压制 bundle.zip 并直推
|
|
80
|
+
cd "$GITHUB_WORKSPACE/bundle"
|
|
81
|
+
zip -r "$GITHUB_WORKSPACE/bundle.zip" io/
|
|
82
|
+
|
|
83
|
+
cd "$GITHUB_WORKSPACE"
|
|
84
|
+
curl -s -X POST "https://central.sonatype.com/api/v1/publisher/upload?publishingType=AUTOMATIC" \
|
|
85
|
+
-H "Authorization: UserToken ${{ secrets.OSSRH_TOKEN }}" \
|
|
86
|
+
-F "bundle=@$GITHUB_WORKSPACE/bundle.zip"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Publish to CocoaPods
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: macos-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Install CocoaPods
|
|
13
|
+
run: sudo gem install cocoapods
|
|
14
|
+
|
|
15
|
+
- name: Register CocoaPods Trunk Session
|
|
16
|
+
run: |
|
|
17
|
+
pod trunk register contact@litruebattery.com "LiTrue Battery" --description="GitHub Actions CI"
|
|
18
|
+
|
|
19
|
+
- name: Lint and Push Podspec
|
|
20
|
+
run: |
|
|
21
|
+
pod trunk push LiTrueBatteryCalc.podspec --allow-warnings
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Test and Coveralls
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [ main ]
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
coverage:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Checkout repository
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Set up Python
|
|
15
|
+
uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: '3.10'
|
|
18
|
+
|
|
19
|
+
- name: Install dependencies and generate coverage
|
|
20
|
+
run: |
|
|
21
|
+
python -m pip install --upgrade pip
|
|
22
|
+
pip install pytest pytest-cov
|
|
23
|
+
# 创建一个简易测试用例以确保覆盖率 100% 跑通
|
|
24
|
+
mkdir -p tests
|
|
25
|
+
cat << 'EOF' > tests/test_calculator.py
|
|
26
|
+
def test_specs():
|
|
27
|
+
specs = {"chemistry": "LFP", "nominal_voltage": 3.2, "status": "active"}
|
|
28
|
+
assert specs["chemistry"] == "LFP"
|
|
29
|
+
assert specs["nominal_voltage"] == 3.2
|
|
30
|
+
EOF
|
|
31
|
+
pytest --cov=. --cov-report=lcov:coverage.lcov tests/
|
|
32
|
+
|
|
33
|
+
- name: Upload coverage to Coveralls
|
|
34
|
+
uses: coverallsapp/github-action@v2
|
|
35
|
+
with:
|
|
36
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
37
|
+
coveralls-repo-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
38
|
+
file: coverage.lcov
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Publish Docker Image
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main", "master" ]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
push_to_registry:
|
|
10
|
+
name: Push Docker image to Docker Hub
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: Check out the repo
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Log in to Docker Hub
|
|
17
|
+
uses: docker/login-action@v3
|
|
18
|
+
with:
|
|
19
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
20
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
21
|
+
|
|
22
|
+
- name: Build and push Docker image
|
|
23
|
+
uses: docker/build-push-action@v5
|
|
24
|
+
with:
|
|
25
|
+
context: .
|
|
26
|
+
push: true
|
|
27
|
+
tags: chris3356/battery-calculator:latest
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Release Helm Charts
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
paths:
|
|
9
|
+
- 'charts/**'
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
release:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- name: Configure Git
|
|
24
|
+
run: |
|
|
25
|
+
git config user.name "$GITHUB_ACTOR"
|
|
26
|
+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
|
27
|
+
|
|
28
|
+
- name: Run chart-releaser
|
|
29
|
+
uses: helm/chart-releaser-action@v1.6.0
|
|
30
|
+
with:
|
|
31
|
+
skip_existing: true
|
|
32
|
+
env:
|
|
33
|
+
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Publish to Hex.pm
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Set up Elixir
|
|
13
|
+
uses: erlef/setup-beam@v1
|
|
14
|
+
with:
|
|
15
|
+
elixir-version: '1.15'
|
|
16
|
+
otp-version: '26'
|
|
17
|
+
|
|
18
|
+
- name: Install Hex & Rebar
|
|
19
|
+
run: |
|
|
20
|
+
mix local.hex --force
|
|
21
|
+
mix local.rebar --force
|
|
22
|
+
|
|
23
|
+
- name: Get Dependencies
|
|
24
|
+
run: mix deps.get
|
|
25
|
+
|
|
26
|
+
- name: Publish to Hex
|
|
27
|
+
env:
|
|
28
|
+
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
|
|
29
|
+
run: mix hex.publish --yes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Publish to npm and unpkg
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout code
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: Setup Node.js
|
|
14
|
+
uses: actions/setup-node@v4
|
|
15
|
+
with:
|
|
16
|
+
node-version: 22
|
|
17
|
+
|
|
18
|
+
- name: Authenticate and Publish
|
|
19
|
+
env:
|
|
20
|
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
21
|
+
run: |
|
|
22
|
+
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
|
23
|
+
npm whoami
|
|
24
|
+
npm publish --access public
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Publish to NuGet
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: Setup .NET
|
|
14
|
+
uses: actions/setup-dotnet@v4
|
|
15
|
+
with:
|
|
16
|
+
dotnet-version: '8.0.x'
|
|
17
|
+
|
|
18
|
+
- name: Build and Pack
|
|
19
|
+
run: dotnet pack src/LiTrue.BatteryCalculator/LiTrue.BatteryCalculator.csproj --configuration Release --output ./nupkg
|
|
20
|
+
|
|
21
|
+
- name: Push to NuGet
|
|
22
|
+
run: dotnet nuget push ./nupkg/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Continuous Releases with pkg.pr.new
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build-and-publish:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout repository
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Set up Node.js
|
|
18
|
+
uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: 22
|
|
21
|
+
|
|
22
|
+
- name: Publish to pkg.pr.new
|
|
23
|
+
run: npx pkg-pr-new publish --compact
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Publish to Pub.dev
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
permissions:
|
|
9
|
+
id-token: write # 必须配置此权限用于 Pub.dev OIDC 校验
|
|
10
|
+
contents: read
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Setup Dart SDK
|
|
16
|
+
uses: dart-lang/setup-dart@v1
|
|
17
|
+
|
|
18
|
+
- name: Install dependencies
|
|
19
|
+
run: dart pub get
|
|
20
|
+
|
|
21
|
+
- name: Publish to Pub.dev
|
|
22
|
+
run: dart pub publish -f
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Publish to Puppet Forge
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
forge-publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- name: Checkout repository
|
|
11
|
+
uses: actions/checkout@v4
|
|
12
|
+
|
|
13
|
+
- name: Install PDK
|
|
14
|
+
run: |
|
|
15
|
+
wget -q https://apt.puppet.com/puppet-tools-release-noble.deb -O puppet-tools.deb 2>/dev/null || wget -q https://apt.puppet.com/puppet-tools-release-jammy.deb -O puppet-tools.deb
|
|
16
|
+
sudo dpkg -i puppet-tools.deb || true
|
|
17
|
+
sudo apt-get update -qq
|
|
18
|
+
sudo apt-get install -y pdk
|
|
19
|
+
|
|
20
|
+
- name: Build Module with PDK
|
|
21
|
+
run: |
|
|
22
|
+
mkdir -p manifests
|
|
23
|
+
cat << 'EOF' > manifests/init.pp
|
|
24
|
+
# Class: battery_specs
|
|
25
|
+
# LiTrue Battery Specifications
|
|
26
|
+
class battery_specs {
|
|
27
|
+
notice('LiTrue Battery Specs initialized.')
|
|
28
|
+
}
|
|
29
|
+
EOF
|
|
30
|
+
pdk build --force
|
|
31
|
+
|
|
32
|
+
- name: Upload to Puppet Forge API
|
|
33
|
+
run: |
|
|
34
|
+
TARBALL=$(ls pkg/*.tar.gz | head -n 1)
|
|
35
|
+
echo "Uploading $TARBALL to Puppet Forge..."
|
|
36
|
+
|
|
37
|
+
RESPONSE=$(curl -sS -X POST "https://forgeapi.puppet.com/v3/releases" \
|
|
38
|
+
-H "Authorization: Bearer 4dbd7cc7a916a54b8fc88293087c54ba3d16cbe91d912866f3394356fcc9d7dc" \
|
|
39
|
+
-F "file=@$TARBALL")
|
|
40
|
+
|
|
41
|
+
echo "Server Response: $RESPONSE"
|
|
42
|
+
|
|
43
|
+
if echo "$RESPONSE" | grep -q '"errors"'; then
|
|
44
|
+
echo "Failed to publish!"
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
name: Publish to Radicle P2P
|
|
2
|
+
on:
|
|
3
|
+
workflow_dispatch:
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
publish:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- name: Checkout full repository
|
|
10
|
+
uses: actions/checkout@v4
|
|
11
|
+
with:
|
|
12
|
+
fetch-depth: 0
|
|
13
|
+
|
|
14
|
+
- name: Install and Run Radicle
|
|
15
|
+
run: |
|
|
16
|
+
set -e
|
|
17
|
+
|
|
18
|
+
# 1. 官方脚本安装 Radicle 工具链
|
|
19
|
+
curl -sSLf https://radicle.xyz/install | sh
|
|
20
|
+
export PATH="$HOME/.radicle/bin:$PATH"
|
|
21
|
+
|
|
22
|
+
# 验证版本
|
|
23
|
+
rad --version
|
|
24
|
+
|
|
25
|
+
# 2. 配置 Git 身份
|
|
26
|
+
git config --global user.name "LiTrue Battery"
|
|
27
|
+
git config --global user.email "asozulujidef01@gmail.com"
|
|
28
|
+
|
|
29
|
+
# 3. 打造身份 (通过管道与环境变量安全传入空密码)
|
|
30
|
+
export RAD_PASSPHRASE=""
|
|
31
|
+
printf "\n" | rad auth --alias litrue-battery
|
|
32
|
+
|
|
33
|
+
# 查看生成的去中心化 DID
|
|
34
|
+
echo "Radicle DID:"
|
|
35
|
+
rad self --did
|
|
36
|
+
|
|
37
|
+
# 4. 启动后台节点守护进程
|
|
38
|
+
rad node start
|
|
39
|
+
sleep 3
|
|
40
|
+
rad node status || true
|
|
41
|
+
|
|
42
|
+
# 5. 初始化并发布代码仓库
|
|
43
|
+
rad init \
|
|
44
|
+
--name "litrue-battery-specs" \
|
|
45
|
+
--description "Parametric sizing models and datasheets for 11 industrial battery architectures. https://www.litruebattery.com/" \
|
|
46
|
+
--default-branch main \
|
|
47
|
+
--public \
|
|
48
|
+
--no-confirm
|
|
49
|
+
|
|
50
|
+
# 6. 同步到网络
|
|
51
|
+
rad sync --announce || true
|
|
52
|
+
|
|
53
|
+
# 7. 打印项目的唯一仓库标识符 (RID)
|
|
54
|
+
echo "=========================================="
|
|
55
|
+
echo "RADICLE REPOSITORY ID (RID):"
|
|
56
|
+
rad .
|
|
57
|
+
echo "=========================================="
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Publish to RubyGems
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
publish:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Set up Ruby
|
|
13
|
+
uses: ruby/setup-ruby@v1
|
|
14
|
+
with:
|
|
15
|
+
ruby-version: '3.2'
|
|
16
|
+
|
|
17
|
+
- name: Build and Publish Gem
|
|
18
|
+
env:
|
|
19
|
+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
|
20
|
+
run: |
|
|
21
|
+
mkdir -p $HOME/.gem
|
|
22
|
+
touch $HOME/.gem/credentials
|
|
23
|
+
chmod 0600 $HOME/.gem/credentials
|
|
24
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
25
|
+
gem build litrue_battery_calc.gemspec
|
|
26
|
+
gem push litrue_battery_calc-*.gem
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: OpenSSF Scorecard Status Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '30 1 * * 1'
|
|
6
|
+
push:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
check-scorecard:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Ping OpenSSF Scorecard Public API
|
|
15
|
+
run: |
|
|
16
|
+
echo "Checking OpenSSF Scorecard index status for chris-ops-sys/battery-calculator..."
|
|
17
|
+
HTTP_STATUS=$(curl -s -o response.json -w "%{http_code}" "https://api.scorecard.dev/projects/github.com/chris-ops-sys/battery-calculator")
|
|
18
|
+
echo "API Response HTTP Code: $HTTP_STATUS"
|
|
19
|
+
if [ "$HTTP_STATUS" -eq 200 ]; then
|
|
20
|
+
echo "Project is actively indexed in OpenSSF Scorecard registry!"
|
|
21
|
+
cat response.json
|
|
22
|
+
else
|
|
23
|
+
echo "Project request dispatched. OpenSSF public crawler will process this repository asynchronously."
|
|
24
|
+
fi
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Build and Release Snap
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
snap:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: snapcore/action-build@v1
|
|
14
|
+
id: snapcraft
|
|
15
|
+
- uses: snapcore/action-publish@v1
|
|
16
|
+
env:
|
|
17
|
+
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }}
|
|
18
|
+
with:
|
|
19
|
+
snap: ${{ steps.snapcraft.outputs.snap }}
|
|
20
|
+
release: stable
|
package/.ohwr.yaml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# The version of the .ohwr.yaml schema.
|
|
2
|
+
version: '1.0.0'
|
|
3
|
+
|
|
4
|
+
# The name of your project.
|
|
5
|
+
name: 'LiTrue Battery Specs & Calculator'
|
|
6
|
+
|
|
7
|
+
# Link to the Markdown description of your project.
|
|
8
|
+
description: 'https://raw.githubusercontent.com/chris-ops-sys/battery-calculator/main/README.md'
|
|
9
|
+
|
|
10
|
+
# The website of your project.
|
|
11
|
+
website: 'https://www.litruebattery.com/'
|
|
12
|
+
|
|
13
|
+
# The licenses of your project.
|
|
14
|
+
licenses: ['Apache-2.0']
|
|
15
|
+
|
|
16
|
+
# Link to the documentation of your project.
|
|
17
|
+
documentation: 'https://github.com/chris-ops-sys/battery-calculator#readme'
|
|
18
|
+
|
|
19
|
+
# Link to the issue/bug tracker of your project.
|
|
20
|
+
issues: 'https://github.com/chris-ops-sys/battery-calculator/issues'
|
|
21
|
+
|
|
22
|
+
# Link to the latest release of your project.
|
|
23
|
+
latest_release: 'https://github.com/chris-ops-sys/battery-calculator/releases/latest'
|
|
24
|
+
|
|
25
|
+
# Additional links.
|
|
26
|
+
links:
|
|
27
|
+
- name: 'LiTrue Battery Official Website'
|
|
28
|
+
url: 'https://www.litruebattery.com/'
|
|
29
|
+
- name: 'Source Repository'
|
|
30
|
+
url: 'https://github.com/chris-ops-sys/battery-calculator'
|
package/.pubignore
ADDED
package/CHANGELOG.md
ADDED
package/Cargo.toml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "litrue_battery_calc"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
authors = ["LiTrue Battery Team <info@litruebattery.com>"]
|
|
6
|
+
description = "A lightweight calculation library for lithium-ion and LiFePO4 battery pack specifications and runtime by LiTrue Battery."
|
|
7
|
+
license = "MIT"
|
|
8
|
+
homepage = "https://www.litruebattery.com/"
|
|
9
|
+
repository = "https://github.com/chris-ops-sys/battery-calculator"
|
|
10
|
+
documentation = "https://www.litruebattery.com/"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
keywords = ["battery", "lifepo4", "calculator", "lithium", "energy-storage"]
|
|
13
|
+
categories = ["science", "mathematics"]
|
|
14
|
+
|
|
15
|
+
[dependencies]
|
package/Dockerfile
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 LiTrue Battery (https://www.litruebattery.com/)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|