Skip to content

Commit 341d009

Browse files
committed
start-os sdk beta.48
1 parent afa6a61 commit 341d009

File tree

16 files changed

+368
-270
lines changed

16 files changed

+368
-270
lines changed

.github/workflows/buildService.yml

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,15 @@ on:
99
paths-ignore: ['*.md']
1010
branches: ['main', 'master', 'update/040']
1111

12-
jobs:
13-
BuildPackage:
14-
runs-on: ubuntu-latest
15-
steps:
16-
- name: Prepare StartOS SDK
17-
uses: start9labs/sdk@v2
18-
19-
- name: Checkout services repository
20-
uses: actions/checkout@v5
21-
with:
22-
submodules: recursive
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
14+
cancel-in-progress: true
2315

24-
- name: Build the service package
25-
id: build
26-
env:
27-
S9DEVKEY: ${{ secrets.S9DEVKEY }}
28-
run: |
29-
start-cli init-key
30-
if [[ -n "$S9DEVKEY" ]]; then
31-
echo "Using developer key from secrets to sign the package."
32-
printf '%s' "$S9DEVKEY" > ~/.startos/developer.key.pem
33-
else
34-
echo "Using newly generated developer key to sign the package."
35-
fi
36-
RUST_LOG=debug RUST_BACKTRACE=1 make
37-
PACKAGE_ID=$(start-cli s9pk inspect *.s9pk manifest | jq -r '.id')
38-
echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
39-
printf "\n SHA256SUM: $(sha256sum ${PACKAGE_ID}.s9pk) \n"
40-
shell: bash
41-
42-
- name: Upload .s9pk
43-
uses: actions/upload-artifact@v5
44-
with:
45-
name: ${{ env.package_id }}.s9pk
46-
path: ./${{ env.package_id }}.s9pk
16+
jobs:
17+
build:
18+
if: github.event.pull_request.draft == false
19+
uses: start9labs/shared-workflows/.github/workflows/buildService.yml@master
20+
# with:
21+
# FREE_DISK_SPACE: true
22+
secrets:
23+
DEV_KEY: ${{ secrets.DEV_KEY }}

.github/workflows/releaseService.yml

Lines changed: 8 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -6,78 +6,12 @@ on:
66
- 'v*.*'
77

88
jobs:
9-
ReleasePackage:
10-
runs-on: ubuntu-latest
9+
release:
10+
uses: start9labs/shared-workflows/.github/workflows/releaseService.yml@master
11+
with:
12+
# FREE_DISK_SPACE: true
13+
REGISTRY: ${{ vars.REGISTRY }} # Optional. Defaults to https://alpha-registry-x.start9.com
14+
secrets:
15+
DEV_KEY: ${{ secrets.DEV_KEY }} # Required
1116
permissions:
12-
contents: write
13-
steps:
14-
- name: Prepare StartOS SDK
15-
uses: start9labs/sdk@v2
16-
17-
- name: Checkout services repository
18-
uses: actions/checkout@v4
19-
with:
20-
submodules: recursive
21-
22-
- name: Build the service package
23-
id: build
24-
env:
25-
S9DEVKEY: ${{ secrets.S9DEVKEY }}
26-
run: |
27-
start-cli init-key
28-
if [[ -n "$S9DEVKEY" ]]; then
29-
echo "Using developer key from secrets to sign the package."
30-
printf '%s' "$S9DEVKEY" > ~/.startos/developer.key.pem
31-
else
32-
echo "Using newly generated developer key to sign the package."
33-
fi
34-
RUST_LOG=debug RUST_BACKTRACE=1 make
35-
sleep 2
36-
MANIFEST_JSON=$(start-cli s9pk inspect *.s9pk manifest)
37-
PACKAGE_ID=$(echo "$MANIFEST_JSON" | jq -r '.id')
38-
PACKAGE_TITLE=$(echo "$MANIFEST_JSON" | jq -r '.title')
39-
echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
40-
echo "package_title=${PACKAGE_TITLE}" >> $GITHUB_ENV
41-
printf "\n SHA256SUM: $(sha256sum ${PACKAGE_ID}.s9pk) \n"
42-
shell: bash
43-
44-
- name: Generate sha256 checksum
45-
run: |
46-
sha256sum ${{ env.package_id }}.s9pk > ${{ env.package_id }}.s9pk.sha256
47-
shell: bash
48-
49-
- name: Generate changelog
50-
run: |
51-
echo "## What's Changed" > change-log.txt
52-
echo "" >> change-log.txt
53-
RELEASE_NOTES=$(start-cli s9pk inspect *.s9pk manifest | jq -r '.releaseNotes')
54-
echo "${RELEASE_NOTES}" >> change-log.txt
55-
echo "## SHA256 Hash" >> change-log.txt
56-
echo '```' >> change-log.txt
57-
sha256sum ${{ env.package_id }}.s9pk >> change-log.txt
58-
echo '```' >> change-log.txt
59-
shell: bash
60-
61-
- name: Create GitHub Release
62-
uses: softprops/action-gh-release@v2
63-
with:
64-
tag_name: ${{ github.ref_name }}
65-
name: ${{ env.package_title }} ${{ github.ref_name }}
66-
prerelease: true
67-
body_path: change-log.txt
68-
files: |
69-
./${{ env.package_id }}.s9pk
70-
./${{ env.package_id }}.s9pk.sha256
71-
72-
- name: Publish to Registry
73-
env:
74-
S9DEVKEY: ${{ secrets.S9DEVKEY }}
75-
S9REGISTRY: ${{ secrets.S9REGISTRY }}
76-
run: |
77-
if [[ -z "$S9DEVKEY" || -z "$S9REGISTRY" ]]; then
78-
echo "Publish skipped: One or both of S9DEVKEY and S9REGISTRY secrets are not set."
79-
else
80-
echo "Publishing package to registry..."
81-
start-cli --registry https://$S9REGISTRY registry package add ${{ env.package_id }}.s9pk ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.ref_name }}/${{ env.package_id }}.s9pk
82-
fi
83-
shell: bash
17+
contents: write

Makefile

Lines changed: 3 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,3 @@
1-
PACKAGE_ID := $(shell awk -F"'" '/id:/ {print $$2}' startos/manifest.ts)
2-
INGREDIENTS := $(shell start-cli s9pk list-ingredients 2>/dev/null)
3-
4-
.PHONY: all aarch64 x86_64 riscv64 arm arm64 x86 riscv arch/* clean install check-deps check-init package ingredients
5-
.DELETE_ON_ERROR:
6-
.SECONDARY:
7-
8-
define SUMMARY
9-
@manifest=$$(start-cli s9pk inspect $(1) manifest); \
10-
size=$$(du -h $(1) | awk '{print $$1}'); \
11-
title=$$(printf '%s' "$$manifest" | jq -r .title); \
12-
version=$$(printf '%s' "$$manifest" | jq -r .version); \
13-
arches=$$(printf '%s' "$$manifest" | jq -r '.hardwareRequirements.arch | join(", ")'); \
14-
sdkv=$$(printf '%s' "$$manifest" | jq -r .sdkVersion); \
15-
gitHash=$$(printf '%s' "$$manifest" | jq -r .gitHash | sed -E 's/(.*-modified)$$/\x1b[0;31m\1\x1b[0m/'); \
16-
printf "\n"; \
17-
printf "\033[1;32m✅ Build Complete!\033[0m\n"; \
18-
printf "\n"; \
19-
printf "\033[1;37m📦 $$title\033[0m \033[36mv$$version\033[0m\n"; \
20-
printf "───────────────────────────────\n"; \
21-
printf " \033[1;36mFilename:\033[0m %s\n" "$(1)"; \
22-
printf " \033[1;36mSize:\033[0m %s\n" "$$size"; \
23-
printf " \033[1;36mArch:\033[0m %s\n" "$$arches"; \
24-
printf " \033[1;36mSDK:\033[0m %s\n" "$$sdkv"; \
25-
printf " \033[1;36mGit:\033[0m %s\n" "$$gitHash"; \
26-
echo ""
27-
endef
28-
29-
all: $(PACKAGE_ID).s9pk
30-
$(call SUMMARY,$<)
31-
32-
arch/%: $(PACKAGE_ID)_%.s9pk
33-
$(call SUMMARY,$<)
34-
35-
x86 x86_64: arch/x86_64
36-
arm arm64 aarch64: arch/aarch64
37-
riscv riscv64: arch/riscv64
38-
39-
$(PACKAGE_ID).s9pk: $(INGREDIENTS) .git/HEAD .git/index
40-
@$(MAKE) --no-print-directory ingredients
41-
@echo " Packing '$@'..."
42-
start-cli s9pk pack -o $@
43-
44-
$(PACKAGE_ID)_%.s9pk: $(INGREDIENTS) .git/HEAD .git/index
45-
@$(MAKE) --no-print-directory ingredients
46-
@echo " Packing '$@'..."
47-
start-cli s9pk pack --arch=$* -o $@
48-
49-
ingredients: $(INGREDIENTS)
50-
@echo " Re-evaluating ingredients..."
51-
52-
install: | check-deps check-init
53-
@HOST=$$(awk -F'/' '/^host:/ {print $$3}' ~/.startos/config.yaml); \
54-
if [ -z "$$HOST" ]; then \
55-
echo "Error: You must define \"host: http://server-name.local\" in ~/.startos/config.yaml"; \
56-
exit 1; \
57-
fi; \
58-
S9PK=$$(ls -t *.s9pk 2>/dev/null | head -1); \
59-
if [ -z "$$S9PK" ]; then \
60-
echo "Error: No .s9pk file found. Run 'make' first."; \
61-
exit 1; \
62-
fi; \
63-
printf "\n🚀 Installing %s to %s ...\n" "$$S9PK" "$$HOST"; \
64-
start-cli package install -s "$$S9PK"
65-
66-
check-deps:
67-
@command -v start-cli >/dev/null || \
68-
(echo "Error: start-cli not found. Please see https://docs.start9.com/latest/developer-guide/sdk/installing-the-sdk" && exit 1)
69-
@command -v npm >/dev/null || \
70-
(echo "Error: npm not found. Please install Node.js and npm." && exit 1)
71-
72-
check-init:
73-
@if [ ! -f ~/.startos/developer.key.pem ]; then \
74-
echo "Initializing StartOS developer environment..."; \
75-
start-cli init-key; \
76-
fi
77-
78-
javascript/index.js: $(shell find startos -type f) tsconfig.json node_modules
79-
npm run build
80-
81-
node_modules: package-lock.json
82-
npm ci
83-
84-
package-lock.json: package.json
85-
npm i
86-
87-
clean:
88-
@echo "Cleaning up build artifacts..."
1+
# overrides to s9pk.mk must precede the include statement
2+
ARCHES := x86 arm
3+
include s9pk.mk

package-lock.json

Lines changed: 19 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@
66
"check": "tsc --noEmit"
77
},
88
"dependencies": {
9-
"@start9labs/start-sdk": "^0.4.0-beta.45",
10-
"bitcoind-startos": "git+https://github.com/Start9Labs/bitcoind-startos.git#update/040",
11-
"bitcoind-testnet-startos": "git+https://github.com/remcoros/bitcoind-testnet4-startos.git#update/040-testnet4",
9+
"@start9labs/start-sdk": "^0.4.0-beta.48",
10+
"bitcoind-startos": "git+https://github.com/Start9Labs/bitcoind-startos.git#update/040",
1211
"js-yaml": "^4.1.1"
1312
},
1413
"devDependencies": {
15-
"@types/node": "^22.19.1",
14+
"@types/node": "^22.19.7",
1615
"@types/js-yaml": "^4.0.9",
1716
"@vercel/ncc": "^0.38.4",
18-
"prettier": "^3.7.4",
17+
"prettier": "^3.8.1",
1918
"typescript": "^5.9.3"
2019
},
2120
"prettier": {

0 commit comments

Comments
 (0)