generated from Start9Labs/hello-world-startos
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* wip * fix: devcontainer * fix: update icon * fix: add Dockerfile * ci: add CIs * fix: Makefile * fix: readme * fix: dockerfile * fix: Update instructions for PairDrop * chore: Update description for User Interface in manifest.yaml * ci: Upload .s9pk artifact * chore: Remove npm start from Dockerfile and add docker_entrypoint.sh * chore: Update artifact upload step in buildService.yml * chore: Update Dockerfile and docker_entrypoint.sh for production deployment * another try
- Loading branch information
Showing
18 changed files
with
338 additions
and
168 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# Move to a tempdir | ||
cd "$(mktemp -d)" | ||
|
||
# Hardcoded to deno 1.42.4 | ||
curl -LO https://github.com/denoland/deno/releases/download/v1.42.4/deno-x86_64-unknown-linux-gnu.zip | ||
|
||
# Check the checksum | ||
echo "8f769ded5ec44511ee8410c6389174e79c9d142cb4e47385d7358b552c63bdb9 deno-x86_64-unknown-linux-gnu.zip" | sha256sum -c - | ||
|
||
# unzip | ||
unzip deno-x86_64-unknown-linux-gnu.zip | ||
sudo mv deno /usr/bin/deno | ||
|
||
# remove everything | ||
rm -rf -- * | ||
|
||
# test command | ||
deno --version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
{ | ||
"name": "Start9 App Builder", | ||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu", | ||
"features": { | ||
"ghcr.io/devcontainers/features/docker-in-docker:2": {}, | ||
"ghcr.io/devcontainers/features/python:1": {}, | ||
"ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { | ||
"packages": "build-essential,openssl,libssl-dev,libc6-dev,clang,libclang-dev,ca-certificates,curl,cargo" | ||
} | ||
}, | ||
|
||
// Configure tool-specific properties. | ||
"customizations": { | ||
"vscode": { | ||
"extensions": [ | ||
"ms-azuretools.vscode-docker", | ||
"ms-python.python", | ||
"mads-hartmann.bash-ide-vscode", | ||
"timonwong.shellcheck", | ||
"tamasfe.even-better-toml", | ||
"github.vscode-github-actions", | ||
"GitHub.copilot", | ||
"GitHub.copilot-chat", | ||
"DavidAnson.vscode-markdownlint", | ||
"wayou.vscode-todo-highlight" | ||
] | ||
} | ||
}, | ||
|
||
// Install stuff not packaged in Ubuntu | ||
"onCreateCommand": { | ||
"yq": "./.devcontainer/yq.sh", | ||
"deno": "./.devcontainer/deno.sh" | ||
}, | ||
"postCreateCommand": { | ||
"start9": "./.devcontainer/start9.sh" | ||
}, | ||
|
||
// Add start-sdk to the PATH | ||
"containerEnv": { | ||
"PATH": "$HOME/.cargo/bin:$PATH" | ||
}, | ||
|
||
"remoteUser": "vscode" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# move to a homedir | ||
mkdir "$HOME/start9" && cd "$HOME/start9" && pwd | ||
|
||
# Start9 SDK | ||
git clone --recursive https://github.com/Start9Labs/start-os.git --branch sdk | ||
cd start-os/ | ||
make sdk | ||
start-sdk init |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# Move to a tempdir | ||
cd "$(mktemp -d)" | ||
|
||
# Hardcoded to yq 4.43.1 | ||
curl -LO https://github.com/mikefarah/yq/releases/download/v4.43.1/yq_linux_amd64.tar.gz | ||
|
||
# Check the checksum | ||
echo "049d1f3791cc25160a71b0bbe14a58302fb6a7e4462e07d5cbd543787a9ad815 yq_linux_amd64.tar.gz" | sha256sum -c - | ||
|
||
# untar | ||
tar -xzf yq_linux_amd64.tar.gz | ||
sudo mv yq_linux_amd64 /usr/bin/yq | ||
|
||
# remove everything | ||
rm -rf -- * | ||
|
||
# test command | ||
yq --version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: monthly | ||
- package-ecosystem: "gitsubmodule" | ||
directory: "/" | ||
schedule: | ||
interval: monthly | ||
- package-ecosystem: "devcontainers" | ||
directory: "/" | ||
schedule: | ||
interval: monthly |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: Build Service | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths-ignore: ["*.md"] | ||
branches: ["main", "master"] | ||
push: | ||
paths-ignore: ["*.md"] | ||
branches: ["main", "master"] | ||
|
||
jobs: | ||
BuildPackage: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Prepare StartOS SDK | ||
uses: Start9Labs/sdk@v1 | ||
|
||
- name: Checkout services repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Build the service package | ||
id: build | ||
run: | | ||
git submodule update --init --recursive | ||
start-sdk init | ||
make | ||
PACKAGE_ID=$(yq -oy ".id" manifest.*) | ||
echo "package_id=$PACKAGE_ID" >> $GITHUB_ENV | ||
shell: bash | ||
|
||
- name: Upload .s9pk | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ env.package_id }}.s9pk | ||
path: ./${{ env.package_id }}.s9pk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Release Service | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'v*.*' | ||
|
||
jobs: | ||
ReleasePackage: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Prepare StartOS SDK | ||
uses: Start9Labs/sdk@v1 | ||
|
||
- name: Checkout services repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Build the service package | ||
run: | | ||
git submodule update --init --recursive | ||
start-sdk init | ||
make | ||
- name: Setting package ID and title from the manifest | ||
id: package | ||
run: | | ||
echo "package_id=$(yq -oy ".id" manifest.*)" >> $GITHUB_ENV | ||
echo "package_title=$(yq -oy ".title" manifest.*)" >> $GITHUB_ENV | ||
shell: bash | ||
|
||
- name: Generate sha256 checksum | ||
run: | | ||
PACKAGE_ID=${{ env.package_id }} | ||
sha256sum ${PACKAGE_ID}.s9pk > ${PACKAGE_ID}.s9pk.sha256 | ||
shell: bash | ||
|
||
- name: Generate changelog | ||
run: | | ||
PACKAGE_ID=${{ env.package_id }} | ||
echo "## What's Changed" > change-log.txt | ||
yq -oy '.release-notes' manifest.* >> change-log.txt | ||
echo "## SHA256 Hash" >> change-log.txt | ||
echo '```' >> change-log.txt | ||
sha256sum ${PACKAGE_ID}.s9pk >> change-log.txt | ||
echo '```' >> change-log.txt | ||
shell: bash | ||
|
||
- name: Create GitHub Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
tag_name: ${{ github.ref_name }} | ||
name: ${{ env.package_title }} ${{ github.ref_name }} | ||
prerelease: true | ||
body_path: change-log.txt | ||
files: | | ||
./${{ env.package_id }}.s9pk | ||
./${{ env.package_id }}.s9pk.sha256 | ||
- name: Publish to Registry | ||
env: | ||
S9USER: ${{ secrets.S9USER }} | ||
S9PASS: ${{ secrets.S9PASS }} | ||
S9REGISTRY: ${{ secrets.S9REGISTRY }} | ||
run: | | ||
if [[ -z "$S9USER" || -z "$S9PASS" || -z "$S9REGISTRY" ]]; then | ||
echo "Publish skipped: missing registry credentials." | ||
else | ||
start-sdk publish https://$S9USER:$S9PASS@$S9REGISTRY ${{ env.package_id }}.s9pk | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
[submodule "hello-world"] | ||
path = hello-world | ||
url = https://github.com/Start9Labs/hello-world | ||
[submodule "pairdrop"] | ||
path = pairdrop | ||
url = https://github.com/schlagmichdoch/pairdrop |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,16 @@ | ||
FROM alpine:3.17 | ||
FROM node:lts-alpine | ||
|
||
RUN apk update | ||
RUN apk add --no-cache tini && \ | ||
rm -f /var/cache/apk/* | ||
WORKDIR /home/node/app | ||
|
||
ARG ARCH | ||
ADD ./hello-world/target/${ARCH}-unknown-linux-musl/release/hello-world /usr/local/bin/hello-world | ||
RUN chmod +x /usr/local/bin/hello-world | ||
ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh | ||
RUN chmod a+x /usr/local/bin/docker_entrypoint.sh | ||
COPY ./pairdrop/package*.json ./ | ||
|
||
RUN npm ci | ||
|
||
COPY ./pairdrop . | ||
|
||
# environment settings | ||
ENV NODE_ENV="production" | ||
|
||
EXPOSE 3000 | ||
|
||
ENTRYPOINT ["npm", "start"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.