mirror of
https://github.com/wavetermdev/backup.git
synced 2026-04-22 15:26:58 -07:00
Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 14b1ee0f75 | |||
| 25788bc30b | |||
| c08b1eb54f | |||
| a1c87e85fa | |||
| 1358fa0d0a | |||
| 95d7f72456 | |||
| 07f176ea53 | |||
| 5c436198af | |||
| 6527659108 | |||
| 01c6c74137 | |||
| 5083c31f99 | |||
| 40d285213a | |||
| 6715865861 | |||
| 0e3692845a | |||
| 12309754fe | |||
| fa295a2bb4 | |||
| 679d336dfd | |||
| c7ab077e55 | |||
| 5add91f960 | |||
| 5b741b570c | |||
| 73187dd06a | |||
| 33fd18c0c6 | |||
| 2a1f8aa4d4 | |||
| e860e330ab | |||
| 75be66bada | |||
| 189e632ff7 | |||
| bbf471566f | |||
| 0464cccf0a | |||
| 17990afd5d | |||
| 9e806d0621 | |||
| 3fa6494493 | |||
| 98385b1e0d | |||
| bdfb80e62f | |||
| b8b4dc20f5 | |||
| 314932d402 | |||
| 3f83441868 | |||
| d9ca9394ac | |||
| 3612bc3ae8 | |||
| 8a0df07b47 | |||
| f27f0d3958 | |||
| b120a7952d | |||
| 01e4106aa7 | |||
| cbe9acf21b | |||
| aeb7195eff | |||
| 19daffad56 | |||
| 85d4259937 | |||
| 7a4e1593b4 | |||
| 4d7212e945 | |||
| 1965493054 | |||
| 1eb89e1982 | |||
| f0bb991a2e | |||
| f85067998f | |||
| 7e21b80af0 | |||
| 5a749d674d | |||
| 6cd74028ef | |||
| 0c3766c67b | |||
| 7b692e2644 |
@@ -1,24 +1,25 @@
|
||||
name: "Build Helper"
|
||||
on: workflow_dispatch
|
||||
env:
|
||||
WAVETERM_VERSION: 0.6.1
|
||||
GO_VERSION: "1.21.5"
|
||||
NODE_VERSION: "21.5.0"
|
||||
jobs:
|
||||
runbuild:
|
||||
outputs:
|
||||
WAVETERM_VERSION: ${{ steps.set-version.outputs.WAVETERM_VERSION }}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- platform: "darwin"
|
||||
arch: "x64"
|
||||
runner: "macos-latest"
|
||||
scripthaus: "build-package"
|
||||
- platform: "darwin"
|
||||
arch: "arm64"
|
||||
arch: "universal"
|
||||
runner: "macos-latest-xlarge"
|
||||
scripthaus: "build-package"
|
||||
- platform: "linux"
|
||||
arch: "x64"
|
||||
arch: "arm64"
|
||||
runner: "ubuntu-latest"
|
||||
scripthaus: "build-package-linux"
|
||||
- platform: "linux"
|
||||
arch: "amd64"
|
||||
runner: "ubuntu-latest"
|
||||
scripthaus: "build-package-linux"
|
||||
runs-on: ${{ matrix.runner }}
|
||||
@@ -28,6 +29,11 @@ jobs:
|
||||
with:
|
||||
repository: scripthaus-dev/scripthaus
|
||||
path: scripthaus
|
||||
- name: Install Linux Build Dependencies
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install rpm flatpak flatpak-builder snapcraft
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{env.GO_VERSION}}
|
||||
@@ -35,7 +41,8 @@ jobs:
|
||||
wavesrv/go.sum
|
||||
waveshell/go.sum
|
||||
scripthaus/go.sum
|
||||
- run: |
|
||||
- name: Install Scripthaus
|
||||
run: |
|
||||
go work use ./scripthaus;
|
||||
cd scripthaus;
|
||||
go get ./...;
|
||||
@@ -44,24 +51,96 @@ jobs:
|
||||
with:
|
||||
node-version: ${{env.NODE_VERSION}}
|
||||
cache: "yarn"
|
||||
- run: yarn --frozen-lockfile
|
||||
- run: ./scripthaus/scripthaus run ${{ matrix.scripthaus }}
|
||||
- name: Set Version
|
||||
id: set-version
|
||||
run: |
|
||||
VERSION=$(node -e 'console.log(require("./version.js"))')
|
||||
echo "WAVETERM_VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
|
||||
- name: Install Yarn Dependencies
|
||||
run: yarn --frozen-lockfile
|
||||
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
|
||||
run: ./scripthaus/scripthaus run ${{ matrix.scripthaus }}
|
||||
env:
|
||||
GOARCH: ${{ matrix.arch }}
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: waveterm-build-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
path: out/make/zip/${{ matrix.platform }}/${{ matrix.arch }}/*.zip
|
||||
name: waveterm-build-${{ matrix.platform }}
|
||||
path: out/make/*
|
||||
retention-days: 2
|
||||
runbuild-linux-arm:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: scripthaus-dev/scripthaus
|
||||
path: scripthaus
|
||||
- name: Install Linux Build Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install rpm flatpak flatpak-builder snapcraft
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{env.GO_VERSION}}
|
||||
cache-dependency-path: |
|
||||
wavesrv/go.sum
|
||||
waveshell/go.sum
|
||||
scripthaus/go.sum
|
||||
- name: Install Scripthaus
|
||||
run: |
|
||||
go work use ./scripthaus;
|
||||
cd scripthaus;
|
||||
go get ./...;
|
||||
CGO_ENABLED=1 go build -o scripthaus cmd/main.go
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{env.NODE_VERSION}}
|
||||
cache: "yarn"
|
||||
- name: Set Version
|
||||
id: set-version
|
||||
run: |
|
||||
VERSION=$(node -e 'console.log(require("./version.js"))')
|
||||
echo "WAVETERM_VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
|
||||
- name: Install Yarn Dependencies
|
||||
run: yarn --frozen-lockfile
|
||||
- name: Build linux/arm64
|
||||
uses: pguyot/arm-runner-action@v2
|
||||
with:
|
||||
image_additional_mb: 2000
|
||||
base_image: dietpi:rpi_armv8_bullseye
|
||||
bind_mount_repository: true
|
||||
commands: |
|
||||
sudo apt-get update && sudo apt-get install -y snapd git
|
||||
sudo snap install --classic go
|
||||
git clone
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: waveterm-build-linux-arm
|
||||
path: out/make/*
|
||||
retention-days: 2
|
||||
|
||||
upload:
|
||||
name: "Upload Builds"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [runbuild]
|
||||
needs: [runbuild, runbuild-linux-arm]
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
merge-multiple: true
|
||||
path: buildtemp
|
||||
- run: (cd buildtemp; zip ../waveterm-builds.zip *)
|
||||
- run: aws s3 cp waveterm-builds.zip s3://waveterm-github-artifacts/
|
||||
path: download
|
||||
- name: Move builds into buildtemp
|
||||
run: |
|
||||
mkdir buildtemp
|
||||
# Will only move over the files, flattening the directory structure
|
||||
find download -mindepth 2 -type f -exec mv -t buildtemp -i '{}' +
|
||||
- name: Set `version.txt`
|
||||
run: |
|
||||
echo "${{ needs.runbuild.outputs.WAVETERM_VERSION }}" > buildtemp/version.txt
|
||||
- name: Zip Builds
|
||||
run: (cd buildtemp; zip ../waveterm-builds.zip *)
|
||||
- name: Upload to S3
|
||||
run: aws s3 cp waveterm-builds.zip s3://waveterm-github-artifacts/
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: "${{ secrets.S3_USERID }}"
|
||||
AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_SECRETKEY }}"
|
||||
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
name: TestDriver.ai Regression Testing
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["main"]
|
||||
pull_request:
|
||||
branches: ["main"]
|
||||
schedule:
|
||||
- cron: "0 21 * * *" # every day at 9pm
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: "TestDriver"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dashcamio/testdriver@main
|
||||
id: testdriver
|
||||
# note that .testdriver/prerun.sh runs before this, so the app has launched already
|
||||
with:
|
||||
prompt: |
|
||||
2. click "Continue"
|
||||
2. focus the Wave input with the keyboard shorcut Command + I
|
||||
3. type 'ls' into the input
|
||||
4. press return
|
||||
5. validate Wave shows the result of 'ls'
|
||||
@@ -0,0 +1,20 @@
|
||||
rm ~/Desktop/WITH-LOVE-FROM-AMERICA.txt
|
||||
brew install go
|
||||
brew tap scripthaus-dev/scripthaus
|
||||
brew install scripthaus
|
||||
npm install -g yarn
|
||||
mkdir ~/build
|
||||
cd ~/build
|
||||
git clone https://github.com/wavetermdev/waveterm.git
|
||||
cd waveterm
|
||||
scripthaus run build-backend
|
||||
echo "Yarn"
|
||||
yarn
|
||||
echo "Rebuild"
|
||||
scripthaus run electron-rebuild
|
||||
echo "Webpack"
|
||||
scripthaus run webpack-build
|
||||
echo "Starting Electron"
|
||||
scripthaus run electron 1>/dev/null 2>&1 &
|
||||
echo "Electron Done"
|
||||
exit
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
# Wave Terminal
|
||||
|
||||
A open-source, cross-platform, AI-integrated, modern terminal for seamless workflows.
|
||||
An open-source, cross-platform, AI-integrated, modern terminal for seamless workflows.
|
||||
|
||||
Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike.
|
||||
|
||||
|
||||
@@ -179,11 +179,11 @@ THE SOFTWARE.
|
||||
|
||||
-----
|
||||
|
||||
## github.com/google/go-github/v57/github
|
||||
## github.com/google/go-github/v59/github
|
||||
|
||||
* Name: github.com/google/go-github/v57/github
|
||||
* Version: v57.0.0
|
||||
* License: [BSD-3-Clause](https://github.com/google/go-github/blob/v57.0.0/LICENSE)
|
||||
* Name: github.com/google/go-github/v59/github
|
||||
* Version: v59.0.0
|
||||
* License: [BSD-3-Clause](https://github.com/google/go-github/blob/v59.0.0/LICENSE)
|
||||
|
||||
```txt
|
||||
Copyright (c) 2013 The go-github AUTHORS. All rights reserved.
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
temp/
|
||||
*/
|
||||
*.zip
|
||||
*.dmg
|
||||
*.dmg
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
sudo apt-get update && sudo apt-get install -y snapd git
|
||||
sudo snap install --classic go && sudo snap install --classic yarn
|
||||
|
||||
rm -rf dist/
|
||||
rm -rf bin/
|
||||
rm -rf build/
|
||||
node_modules/.bin/webpack --env prod
|
||||
WAVESRV_VERSION=$(node -e 'console.log(require("./version.js"))')
|
||||
WAVESHELL_VERSION=v0.4
|
||||
GO_LDFLAGS="-s -w -X main.BuildTime=$(date +'%Y%m%d%H%M')"
|
||||
function buildWaveShell {
|
||||
(cd waveshell; CGO_ENABLED=0 GOOS=$1 GOARCH=$2 go build -ldflags="$GO_LDFLAGS" -o ../bin/mshell/mshell-$WAVESHELL_VERSION-$1.$2 main-waveshell.go)
|
||||
}
|
||||
function buildWaveSrv {
|
||||
# adds -extldflags=-static, *only* on linux (macos does not support fully static binaries) to avoid a glibc dependency
|
||||
(cd wavesrv; CGO_ENABLED=1 GOARCH=$1 go build -tags "osusergo,netgo,sqlite_omit_load_extension" -ldflags "-linkmode 'external' -extldflags=-static $GO_LDFLAGS -X main.WaveVersion=$WAVESRV_VERSION" -o ../bin/wavesrv.$1 ./cmd)
|
||||
}
|
||||
buildWaveShell darwin amd64
|
||||
buildWaveShell darwin arm64
|
||||
buildWaveShell linux amd64
|
||||
buildWaveShell linux arm64
|
||||
buildWaveSrv $GOARCH
|
||||
yarn run electron-builder -c electron-builder.config.js -l
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const eu = require("@electron/universal");
|
||||
const path = require("path");
|
||||
|
||||
let x64Path = path.resolve(__dirname, "temp", "x64", "Wave.app")
|
||||
let arm64Path = path.resolve(__dirname, "temp", "arm64", "Wave.app")
|
||||
let outPath = path.resolve(__dirname, "temp", "Wave.app")
|
||||
const x64Path = path.resolve(__dirname, "temp", "x64", "Wave.app");
|
||||
const arm64Path = path.resolve(__dirname, "temp", "arm64", "Wave.app");
|
||||
const outPath = path.resolve(__dirname, "temp", "Wave.app");
|
||||
|
||||
console.log("building universal package");
|
||||
console.log("x64 path", x64Path);
|
||||
|
||||
+76
-41
@@ -1,11 +1,19 @@
|
||||
#!/bin/bash
|
||||
# This script is used to build the universal app for macOS
|
||||
|
||||
# assumes we have Wave-darwin-x64-[version].zip and Wave-darwin-arm64-[version].zip in current directory
|
||||
VERSION=0.6.1
|
||||
rm -rf temp
|
||||
rm -rf builds
|
||||
mkdir temp
|
||||
mkdir temp/x64
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
rm -f *.zip *.dmg
|
||||
ZIP_DIR=$SCRIPT_DIR/zip
|
||||
rm -rf $ZIP_DIR
|
||||
mkdir $ZIP_DIR
|
||||
TEMP_DIR=$SCRIPT_DIR/temp
|
||||
rm -rf $TEMP_DIR
|
||||
mkdir $TEMP_DIR
|
||||
BUILDS_DIR=$SCRIPT_DIR/builds
|
||||
rm -rf $BUILDS_DIR
|
||||
|
||||
# Download the builds zip
|
||||
aws s3 cp s3://waveterm-github-artifacts/waveterm-builds.zip .
|
||||
BUILDS_ZIP=waveterm-builds.zip
|
||||
if ! [ -f $BUILDS_ZIP ]; then
|
||||
@@ -13,40 +21,66 @@ if ! [ -f $BUILDS_ZIP ]; then
|
||||
exit 1;
|
||||
fi
|
||||
echo "unzipping $BUILDS_ZIP"
|
||||
unzip -q $BUILDS_ZIP -d builds
|
||||
X64_ZIP="builds/Wave-darwin-x64-$VERSION.zip"
|
||||
ARM64_ZIP="builds/Wave-darwin-arm64-$VERSION.zip"
|
||||
if ! [ -f $X64_ZIP ]; then
|
||||
echo "no $X64_ZIP found";
|
||||
exit 1;
|
||||
fi
|
||||
if ! [ -f $ARM64_ZIP ]; then
|
||||
echo "no $ARM64_ZIP found"
|
||||
exit 1;
|
||||
fi
|
||||
unzip -q $BUILDS_ZIP -d $BUILDS_DIR
|
||||
rm $BUILDS_ZIP
|
||||
|
||||
# Ensure we have exactly one of each build
|
||||
find_build()
|
||||
{
|
||||
local BUILD_DIR=$1
|
||||
local BUILD_PATTERN=$2
|
||||
local BUILD_PATH=$(find $BUILD_DIR -type f -iname "$BUILD_PATTERN")
|
||||
local NUM_MATCHES=$(echo $BUILD_PATH | wc -l)
|
||||
if [ "0" -eq "$NUM_MATCHES" ]; then
|
||||
echo "no $BUILD_NAME found in $BUILD_DIR"
|
||||
exit 1
|
||||
elif [ "1" -lt "$NUM_MATCHES" ]; then
|
||||
echo "multiple $BUILD_NAME found in $BUILD_DIR"
|
||||
exit 1
|
||||
fi
|
||||
echo $BUILD_PATH
|
||||
}
|
||||
|
||||
X64_ZIP=$(find_build $BUILDS_DIR "Wave-darwin-x64-*.zip")
|
||||
ARM64_ZIP=$(find_build $BUILDS_DIR "Wave-darwin-arm64-*.zip")
|
||||
set -e
|
||||
echo "unzipping version v$VERSION zip files"
|
||||
ls -l "$X64_ZIP" "$ARM64_ZIP"
|
||||
unzip -q $X64_ZIP -d temp/x64
|
||||
mkdir temp/arm64
|
||||
unzip -q $ARM64_ZIP -d temp/arm64
|
||||
lipo -create -output temp/wavesrv temp/x64/Wave.app/Contents/Resources/app/bin/wavesrv temp/arm64/Wave.app/Contents/Resources/app/bin/wavesrv
|
||||
rm -rf temp/arm64/Wave.app/Contents/Resources/app
|
||||
mv temp/x64/Wave.app/Contents/Resources/app temp/
|
||||
cp temp/wavesrv temp/app/bin/wavesrv
|
||||
mkdir temp/x64/Wave.app/Contents/Resources/app
|
||||
mkdir temp/arm64/Wave.app/Contents/Resources/app
|
||||
node build-universal.js
|
||||
rm -rf temp/Wave.app/Contents/Resources/app
|
||||
mv temp/app temp/Wave.app/Contents/Resources/app
|
||||
node osx-sign.js
|
||||
DEBUG=electron-notarize node osx-notarize.js
|
||||
|
||||
echo "unzipping zip files"
|
||||
unzip -q $X64_ZIP -d $TEMP_DIR/x64
|
||||
unzip -q $ARM64_ZIP -d $TEMP_DIR/arm64
|
||||
rm $ARM64_ZIP $X64_ZIP
|
||||
|
||||
# Create universal app and sign and notarize it
|
||||
TEMP_WAVE_DIR_ARM=$TEMP_DIR/x64/Wave.app
|
||||
TEMP_WAVE_DIR_X64=$TEMP_DIR/arm64/Wave.app
|
||||
TEMP_WAVE_DIR_UNIVERSAL=$TEMP_DIR/Wave.app
|
||||
lipo -create -output $TEMP_DIR/wavesrv $TEMP_WAVE_DIR_X64/Contents/Resources/app/bin/wavesrv $TEMP_WAVE_DIR_ARM/Contents/Resources/app/bin/wavesrv
|
||||
rm -rf $TEMP_WAVE_DIR_ARM/Contents/Resources/app
|
||||
mv $TEMP_WAVE_DIR_X64/Contents/Resources/app $TEMP_DIR
|
||||
cp $TEMP_DIR/wavesrv $TEMP_DIR/app/bin/wavesrv
|
||||
mkdir $TEMP_WAVE_DIR_ARM/Contents/Resources/app
|
||||
mkdir $TEMP_WAVE_DIR_X64/Contents/Resources/app
|
||||
node $SCRIPT_DIR/build-universal.js
|
||||
rm -rf $TEMP_WAVE_DIR_UNIVERSAL/Contents/Resources/app
|
||||
mv $TEMP_DIR/app $TEMP_WAVE_DIR_UNIVERSAL/Contents/Resources/app
|
||||
node $SCRIPT_DIR/osx-sign.js
|
||||
DEBUG=electron-notarize node $SCRIPT_DIR/osx-notarize.js
|
||||
echo "universal app creation success (build/sign/notarize)"
|
||||
|
||||
UVERSION=$(cat $BUILDS_DIR/version.txt)
|
||||
DMG_NAME="waveterm-macos-universal-${UVERSION}.dmg"
|
||||
ZIP_NAME="Wave-macos-universal-${UVERSION}.zip"
|
||||
|
||||
echo "creating universal zip"
|
||||
ditto $TEMP_WAVE_DIR_UNIVERSAL $ZIP_DIR/Wave.app
|
||||
cd $ZIP_DIR
|
||||
zip -9yqr $ZIP_NAME Wave.app
|
||||
mv $ZIP_NAME $BUILDS_DIR/
|
||||
cd $SCRIPT_DIR
|
||||
|
||||
# Expects create-dmg repo to be cloned in the same parent directory as the waveterm repo.
|
||||
echo "creating universal dmg"
|
||||
rm -f *.dmg
|
||||
DMG_VERSION=$(node -e 'console.log(require("../version.js"))')
|
||||
DMG_NAME="waveterm-macos-universal-${DMG_VERSION}.dmg"
|
||||
../../create-dmg/create-dmg \
|
||||
$SCRIPT_DIR/../../create-dmg/create-dmg \
|
||||
--volname "WaveTerm" \
|
||||
--window-pos 200 120 \
|
||||
--window-size 600 300 \
|
||||
@@ -55,8 +89,9 @@ DMG_NAME="waveterm-macos-universal-${DMG_VERSION}.dmg"
|
||||
--hide-extension "Wave.app" \
|
||||
--app-drop-link 400 125 \
|
||||
$DMG_NAME \
|
||||
"temp/Wave.app"
|
||||
"$TEMP_WAVE_DIR_UNIVERSAL"
|
||||
echo "success, created $DMG_NAME"
|
||||
mv $DMG_NAME builds/
|
||||
rm builds/Wave-darwin-*.zip
|
||||
spctl -a -vvv -t install temp/Wave.app/
|
||||
mv $DMG_NAME $BUILDS_DIR/
|
||||
spctl -a -vvv -t install $TEMP_WAVE_DIR_UNIVERSAL/
|
||||
|
||||
rm -rf $TEMP_DIR $ZIP_DIR
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
const { notarize } = require('@electron/notarize');
|
||||
// DEBUG=electron-notarize
|
||||
const { notarize } = require("@electron/notarize");
|
||||
const path = require("path");
|
||||
|
||||
console.log("running osx-notarize");
|
||||
const waveAppPath = path.resolve(__dirname, "temp", "Wave.app");
|
||||
|
||||
notarize({
|
||||
appPath: "temp/Wave.app",
|
||||
appPath: waveAppPath,
|
||||
tool: "notarytool",
|
||||
keychainProfile: "notarytool-creds",
|
||||
}).then(() => {
|
||||
console.log("notarize success");
|
||||
}).catch((e) => {
|
||||
console.log("notarize error", e);
|
||||
process.exit(1);
|
||||
});
|
||||
})
|
||||
.then(() => {
|
||||
console.log("notarize success");
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log("notarize error", e);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
+11
-9
@@ -1,10 +1,10 @@
|
||||
const { signAsync } = require("@electron/osx-sign");
|
||||
// DEBUG="electron-osx-sign*"
|
||||
const path = require("path");
|
||||
|
||||
console.log("running osx-sign");
|
||||
let waveAppPath = "temp/Wave.app";
|
||||
const waveAppPath = path.resolve(__dirname, "temp", "Wave.app");
|
||||
signAsync({
|
||||
app: "temp/Wave.app",
|
||||
app: waveAppPath,
|
||||
binaries: [
|
||||
waveAppPath + "/Contents/Resources/app/bin/wavesrv",
|
||||
waveAppPath + "/Contents/Resources/app/bin/mshell/mshell-v0.4-linux.amd64",
|
||||
@@ -12,9 +12,11 @@ signAsync({
|
||||
waveAppPath + "/Contents/Resources/app/bin/mshell/mshell-v0.4-darwin.amd64",
|
||||
waveAppPath + "/Contents/Resources/app/bin/mshell/mshell-v0.4-darwin.arm64",
|
||||
],
|
||||
}).then(() => {
|
||||
console.log("signing success");
|
||||
}).catch((e) => {
|
||||
console.log("signing error", e);
|
||||
process.exit(1);
|
||||
});
|
||||
})
|
||||
.then(() => {
|
||||
console.log("signing success");
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log("signing error", e);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# This script is used to upload signed and notarized releases to S3 and update the Electron auto-update release feeds.
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
BUILDS_DIR=$SCRIPT_DIR/builds
|
||||
TEMP2_DIR=$SCRIPT_DIR/temp2
|
||||
|
||||
MAIN_RELEASE_PATH="dl.waveterm.dev/build"
|
||||
AUTOUPDATE_RELEASE_PATH="dl.waveterm.dev/autoupdate"
|
||||
|
||||
# Copy the builds to the temp2 directory
|
||||
echo "Copying builds to temp2"
|
||||
rm -rf $TEMP2_DIR
|
||||
mkdir -p $TEMP2_DIR
|
||||
cp -r $BUILDS_DIR/* $TEMP2_DIR
|
||||
|
||||
UVERSION=$(cat $TEMP2_DIR/version.txt)
|
||||
|
||||
if [ -z "$UVERSION" ]; then
|
||||
echo "version.txt is empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find the DMG file
|
||||
echo "Finding DMG"
|
||||
DMG=$(find $TEMP2_DIR -type f -iname "*.dmg")
|
||||
# Ensure there is only one
|
||||
NUM_DMGS=$(echo $DMG | wc -l)
|
||||
if [ "0" -eq "$NUM_DMGS" ]; then
|
||||
echo "no DMG found in $TEMP2_DIR"
|
||||
exit 1
|
||||
elif [ "1" -lt "$NUM_DMGS" ]; then
|
||||
echo "multiple DMGs found in $TEMP2_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find the Mac zip
|
||||
echo "Finding Mac zip"
|
||||
MAC_ZIP=$(find $TEMP2_DIR -type f -iname "*mac*.zip")
|
||||
# Ensure there is only one
|
||||
NUM_MAC_ZIPS=$(echo $MAC_ZIP | wc -l)
|
||||
if [ "0" -eq "$NUM_MAC_ZIPS" ]; then
|
||||
echo "no Mac zip found in $TEMP2_DIR"
|
||||
exit 1
|
||||
elif [ "1" -lt "$NUM_MAC_ZIPS" ]; then
|
||||
echo "multiple Mac zips found in $TEMP2_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find the Linux zips
|
||||
echo "Finding Linux zips"
|
||||
LINUX_ZIPS=$(find $TEMP2_DIR -type f -iname "*linux*.zip")
|
||||
# Ensure there is at least one
|
||||
NUM_LINUX_ZIPS=$(echo $LINUX_ZIPS | wc -l)
|
||||
if [ "0" -eq "$NUM_LINUX_ZIPS" ]; then
|
||||
echo "no Linux zips found in $TEMP2_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Upload the DMG
|
||||
echo "Uploading DMG"
|
||||
DMG_NAME=$(basename $DMG)
|
||||
aws s3 cp $DMG s3:/$MAIN_RELEASE_PATH/$DMG_NAME
|
||||
|
||||
# Upload the Linux zips
|
||||
echo "Uploading Linux zips"
|
||||
for LINUX_ZIP in $LINUX_ZIPS; do
|
||||
LINUX_ZIP_NAME=$(basename $LINUX_ZIP)
|
||||
aws s3 cp $LINUX_ZIP s3://$MAIN_RELEASE_PATH/$LINUX_ZIP_NAME
|
||||
done
|
||||
|
||||
# Upload the autoupdate Mac zip
|
||||
echo "Uploading Mac zip"
|
||||
MAC_ZIP_NAME=$(basename $MAC_ZIP)
|
||||
aws s3 cp $MAC_ZIP s3://$AUTOUPDATE_RELEASE_PATH/$MAC_ZIP_NAME
|
||||
|
||||
# Update the autoupdate feeds
|
||||
echo "Updating autoupdate feeds"
|
||||
RELEASES_CONTENTS="{\"name\":\"$UVERSION\",\"notes\":\"\",\"url\":\"https://$AUTOUPDATE_RELEASE_PATH/$MAC_ZIP_NAME\"}"
|
||||
aws s3 cp - s3://$AUTOUPDATE_RELEASE_PATH/darwin/arm64/RELEASES.json <<< $RELEASES_CONTENTS
|
||||
aws s3 cp - s3://$AUTOUPDATE_RELEASE_PATH/darwin/x64/RELEASES.json <<< $RELEASES_CONTENTS
|
||||
|
||||
# Clean up
|
||||
echo "Cleaning up"
|
||||
rm -rf $TEMP2_DIR
|
||||
@@ -0,0 +1,71 @@
|
||||
const pkg = require("./package.json");
|
||||
|
||||
/**
|
||||
* @type {import('electron-builder').Configuration}
|
||||
* @see https://www.electron.build/configuration/configuration
|
||||
*/
|
||||
const config = {
|
||||
artifactName: "${productName}-${version}-${arch}.${ext}",
|
||||
npmRebuild: false,
|
||||
nodeGypRebuild: false,
|
||||
electronCompile: false,
|
||||
publish: null,
|
||||
files: [
|
||||
{
|
||||
from: "./dist",
|
||||
to: "./dist",
|
||||
filter: ["**/*"],
|
||||
},
|
||||
{
|
||||
from: "./public",
|
||||
to: "./public",
|
||||
filter: ["**/*"],
|
||||
},
|
||||
{
|
||||
from: "./bin",
|
||||
to: "./bin",
|
||||
filter: ["**/*"],
|
||||
},
|
||||
{
|
||||
from: ".",
|
||||
to: ".",
|
||||
filter: ["package.json"],
|
||||
},
|
||||
"!**/node_modules/**${/*}", // Ignore node_modules by default
|
||||
{
|
||||
from: "./node_modules",
|
||||
to: "./node_modules",
|
||||
filter: ["monaco-editor/min/**/*"], // This is the only module we want to include
|
||||
},
|
||||
],
|
||||
directories: {
|
||||
output: "make",
|
||||
},
|
||||
appId: pkg.build.appId,
|
||||
productName: pkg.productName,
|
||||
mac: {
|
||||
target: {
|
||||
target: "zip",
|
||||
arch: "universal",
|
||||
},
|
||||
icon: "public/waveterm.icns",
|
||||
category: "public.app-category.developer-tools",
|
||||
minimumSystemVersion: "10.15.0",
|
||||
asarUnpack: ["bin/**/*"],
|
||||
},
|
||||
linux: {
|
||||
executableName: pkg.productName,
|
||||
category: "TerminalEmulator",
|
||||
icon: "public/waveterm.icns",
|
||||
target: ["zip", "deb"],
|
||||
asar: false,
|
||||
desktop: {
|
||||
Name: pkg.productName,
|
||||
Comment: pkg.description,
|
||||
Keywords: "developer;terminal;emulator;",
|
||||
category: "Development;Utility;",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = config;
|
||||
+59
-8
@@ -1,4 +1,5 @@
|
||||
var AllowedFirstParts = {
|
||||
const pkg = require("./package.json");
|
||||
let AllowedFirstParts = {
|
||||
"package.json": true,
|
||||
dist: true,
|
||||
public: true,
|
||||
@@ -6,11 +7,11 @@ var AllowedFirstParts = {
|
||||
bin: true,
|
||||
};
|
||||
|
||||
var AllowedNodeModules = {
|
||||
let AllowedNodeModules = {
|
||||
"monaco-editor": true,
|
||||
};
|
||||
|
||||
var modCache = {};
|
||||
let modCache = {};
|
||||
|
||||
function ignoreFn(path) {
|
||||
let parts = path.split("/");
|
||||
@@ -47,11 +48,7 @@ function ignoreFn(path) {
|
||||
module.exports = {
|
||||
packagerConfig: {
|
||||
ignore: ignoreFn,
|
||||
files: [
|
||||
"package.json",
|
||||
"dist/*",
|
||||
"public/*",
|
||||
],
|
||||
files: ["package.json", "dist/*", "public/*", "bin/*"],
|
||||
icon: "public/waveterm.icns",
|
||||
},
|
||||
rebuildConfig: {},
|
||||
@@ -60,5 +57,59 @@ module.exports = {
|
||||
name: "@electron-forge/maker-zip",
|
||||
platforms: ["darwin", "linux"],
|
||||
},
|
||||
{
|
||||
name: "@electron-forge/maker-deb",
|
||||
config: {
|
||||
options: {
|
||||
bin: pkg.productName,
|
||||
name: pkg.name,
|
||||
genericName: "Terminal Emulator",
|
||||
productName: pkg.productName,
|
||||
productDescription: pkg.description,
|
||||
icon: "public/waveterm.icns",
|
||||
categories: ["Utility", "Development"],
|
||||
maintainer: pkg.author,
|
||||
homepage: pkg.homepage,
|
||||
license: pkg.license,
|
||||
version: pkg.version,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "@electron-forge/maker-rpm",
|
||||
config: {
|
||||
options: {
|
||||
bin: pkg.productName,
|
||||
name: pkg.name,
|
||||
genericName: "Terminal Emulator",
|
||||
productName: pkg.productName,
|
||||
description: pkg.description,
|
||||
productDescription: pkg.description,
|
||||
icon: "public/waveterm.icns",
|
||||
categories: ["Utility", "Development"],
|
||||
license: pkg.license,
|
||||
version: pkg.version,
|
||||
},
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: "@electron-forge/maker-flatpak",
|
||||
// config: {
|
||||
// options: {
|
||||
// bin: pkg.productName,
|
||||
// mimeType: ["text/plain"],
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: "@electron-forge/maker-snap",
|
||||
// config: {
|
||||
// features: {
|
||||
// audio: true,
|
||||
// mpris: "com.commandline.waveterm",
|
||||
// webgl: true,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
],
|
||||
};
|
||||
|
||||
+23
-8
@@ -1,10 +1,22 @@
|
||||
{
|
||||
"name": "waveterm",
|
||||
"author": "Command Line Inc",
|
||||
"author": {
|
||||
"name": "Command Line Inc",
|
||||
"email": "info@commandline.dev"
|
||||
},
|
||||
"productName": "Wave",
|
||||
"description": "An open-source, cross-platform, AI-integrated, modern terminal for seamless workflows.",
|
||||
"version": "0.6.1",
|
||||
"main": "dist/emain.js",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/wavetermdev/waveterm"
|
||||
},
|
||||
"homepage": "https://waveterm.dev",
|
||||
"build": {
|
||||
"appId": "dev.commandline.waveterm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@monaco-editor/react": "^4.5.1",
|
||||
"@table-nav/core": "^0.0.7",
|
||||
@@ -51,12 +63,12 @@
|
||||
"@babel/preset-react": "^7.23.3",
|
||||
"@babel/preset-typescript": "^7.17.12",
|
||||
"@electron-forge/cli": "^7.2.0",
|
||||
"@electron-forge/maker-deb": "^7.2.0",
|
||||
"@electron-forge/maker-rpm": "^7.2.0",
|
||||
"@electron-forge/maker-deb": "^7.3.0",
|
||||
"@electron-forge/maker-flatpak": "^7.3.0",
|
||||
"@electron-forge/maker-rpm": "^7.3.0",
|
||||
"@electron-forge/maker-snap": "^7.2.0",
|
||||
"@electron-forge/maker-squirrel": "^7.2.0",
|
||||
"@electron-forge/maker-zip": "^7.2.0",
|
||||
"@electron/rebuild": "^3.4.0",
|
||||
"@electron-forge/maker-zip": "^7.3.0",
|
||||
"@svgr/webpack": "^8.1.0",
|
||||
"@types/classnames": "^2.3.1",
|
||||
"@types/electron": "^1.6.10",
|
||||
@@ -71,7 +83,8 @@
|
||||
"babel-plugin-jsx-control-statements": "^4.1.2",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"css-loader": "^6.7.1",
|
||||
"electron": "28.1.3",
|
||||
"electron": "29.0.1",
|
||||
"electron-builder": "^24.12.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"http-server": "^14.1.1",
|
||||
"less": "^4.1.2",
|
||||
@@ -89,5 +102,7 @@
|
||||
"webpack-dev-server": "^4.9.1",
|
||||
"webpack-merge": "^5.8.0"
|
||||
},
|
||||
"scripts": {}
|
||||
}
|
||||
"scripts": {
|
||||
"postinstall": "electron-builder install-app-deps"
|
||||
}
|
||||
}
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user