-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
name: "Release AssemblyScript SDK" | ||
on: | ||
push: | ||
tags: | ||
- "sdk/assemblyscript/v*" | ||
permissions: | ||
contents: "write" | ||
id-token: write | ||
jobs: | ||
release: | ||
# note: must use GitHub-hosted runner for publishing to NPM with --provenance flag | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: "Validate version" | ||
if: ${{ !startsWith(github.ref_name, 'sdk/assemblyscript/v') }} | ||
run: 'echo "Modus AssemblyScript SDK version must start with `sdk/assemblyscript/v` && exit 1' | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: "${{ github.ref_name }}" | ||
- name: Parse SDK Version | ||
id: parse_sdk_version | ||
run: | | ||
echo "sdk_version=$(echo '${{ github.ref_name }}' | cut -d'/' -f 3)" >> $GITHUB_OUTPUT | ||
echo "npm_tag=$(echo '${{ github.ref_name }}' | cut -d'/' -f 3 | sed -E 's/^[^-]+-([a-zA-Z]+).*/\1/ ; s/v.*/latest/')" >> $GITHUB_OUTPUT | ||
- name: Setup Node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ">=22" | ||
registry-url: "https://registry.npmjs.org" | ||
- name: Prepare Templates | ||
working-directory: sdk/assemblyscript | ||
run: ./scripts/prepare-templates.sh ${{ steps.parse_sdk_version.outputs.sdk_version }} | ||
- name: Set Package Version | ||
working-directory: sdk/assemblyscript/src | ||
run: npm version ${{ steps.parse_sdk_version.outputs.sdk_version }} --no-git-tag-version | ||
- name: Install Dependencies | ||
working-directory: sdk/assemblyscript/src | ||
run: npm ci | ||
- name: Publish NPM Package | ||
working-directory: sdk/assemblyscript/src | ||
run: npm publish --provenance --access public --tag ${{ steps.parse_sdk_version.outputs.npm_tag }} | ||
env: | ||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
- name: Create Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
files: templates_assemblyscript_${{ steps.parse_sdk_version.outputs.sdk_version }}.tar.gz | ||
prerelease: ${{ contains(steps.parse_sdk_version.outputs.sdk_version, '-') }} | ||
make_latest: false |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: "Release Go SDK" | ||
on: | ||
push: | ||
tags: | ||
- "sdk/go/v*" | ||
permissions: | ||
contents: "write" | ||
jobs: | ||
release: | ||
runs-on: warp-ubuntu-latest-x64-4x | ||
steps: | ||
- name: "Validate version" | ||
if: ${{ !startsWith(github.ref_name, 'sdk/go/v') }} | ||
run: 'echo "Modus Go SDK version must start with `sdk/go/v` && exit 1' | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: "${{ github.ref_name }}" | ||
- name: Parse SDK Version | ||
id: parse_sdk_version | ||
run: | | ||
echo "sdk_version=$(echo '${{ github.ref_name }}' | cut -d'/' -f 3)" >> $GITHUB_OUTPUT | ||
- name: Setup Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
cache-dependency-path: "./sdk/go/go.sum" | ||
go-version-file: "./sdk/go/go.mod" | ||
- name: Prepare Templates | ||
working-directory: sdk/go | ||
run: ./scripts/prepare-templates.sh ${{ steps.parse_sdk_version.outputs.sdk_version }} | ||
- name: Create Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
files: templates_go_${{ steps.parse_sdk_version.outputs.sdk_version }}.tar.gz | ||
prerelease: ${{ contains(steps.parse_sdk_version.outputs.sdk_version, '-') }} | ||
make_latest: false |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#!/usr/bin/env bash | ||
# Prepares templates for release. | ||
|
||
set -euo pipefail | ||
trap "cd \"${PWD}\"" EXIT | ||
cd "$(dirname "$0")" | ||
|
||
# get the version number from the command line argument | ||
if [ "$#" -ne 1 ]; then | ||
echo "Usage: $0 <version>" | ||
exit 1 | ||
fi | ||
version=$1 | ||
|
||
version=${version#"v"} | ||
echo "Preparing templates for release with version ${version}" | ||
|
||
cd ../templates | ||
for template in *; do | ||
if [ -d "${template}" ]; then | ||
cd "${template}" | ||
|
||
# Remove any output files | ||
rm -rf node_modules | ||
rm -rf build | ||
|
||
# Remove the lockfile - it will be regenerated by npm install when the template is used. | ||
rm -f package-lock.json | ||
|
||
# Update the version of the modus-sdk-as dependency to match the release version. | ||
if [[ "$OSTYPE" == "darwin"* ]]; then | ||
sed -i '' 's/"@hypermode\/modus-sdk-as": "..\/..\/src"/"@hypermode\/modus-sdk-as": "^'"${version}"'"/' package.json | ||
else | ||
sed -i 's/"@hypermode\/modus-sdk-as": "..\/..\/src"/"@hypermode\/modus-sdk-as": "^'"${version}"'"/' package.json | ||
fi | ||
|
||
cd .. | ||
fi | ||
done | ||
|
||
cd .. | ||
tar -czvf ../../templates_assemblyscript_v${version}.tar.gz templates |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"plugins": ["assemblyscript-prettier"] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"extends": "./node_modules/@hypermode/modus-sdk-as/plugin.asconfig.json", | ||
"options": { | ||
"transform": ["@hypermode/modus-sdk-as/transform", "json-as/transform"] | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export function sayHello(name: string | null = null): string { | ||
return `Hello, ${name || "World"}!`; | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"extends": "assemblyscript/std/assembly.json", | ||
"include": ["./**/*.ts"] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
// @ts-check | ||
|
||
import eslint from "@eslint/js"; | ||
import tseslint from "typescript-eslint"; | ||
import aseslint from "@hypermode/modus-sdk-as/tools/assemblyscript-eslint"; | ||
|
||
export default tseslint.config( | ||
eslint.configs.recommended, | ||
...tseslint.configs.recommended, | ||
aseslint.config, | ||
); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"$schema": "https://schema.hypermode.com/modus.json", | ||
"endpoints": { | ||
"default": { | ||
"type": "graphql", | ||
"path": "/graphql", | ||
"auth": "bearer-token" | ||
} | ||
} | ||
} |