Commit Graph

77 Commits

Author SHA1 Message Date
Evan Simkowitz
cf9d24a834
Separate Snap publish jobs (#1433)
Separating Snap publish jobs so they can be retried individually
2024-12-09 10:13:41 -08:00
Mike Sawka
b6ce2cd022
misc v0.9.3 fixes -- numToString, block counts, fix docsite images/video (#1354) 2024-11-25 18:07:29 -08:00
Evan Simkowitz
7c6fa91016
Fix copyfiles for docsite (#1321) 2024-11-19 14:15:11 -08:00
Evan Simkowitz
c7d7c0aa98
Add tasks to clear the waveterm-dev config and data dirs (#1318) 2024-11-18 14:08:25 -08:00
Evan Simkowitz
5e534f5cda
Reduce rebuilding in Taskfile (#1306)
Moves around where `sources` and `generates` are defined for different
tasks to reduce unnecessary rebuilds.
2024-11-15 16:12:21 -08:00
Evan Simkowitz
4a330a4842
Fix copyfiles step so storybook serves correctly (#1299)
confirmed this still works on Windows
2024-11-15 13:19:20 -08:00
Evan Simkowitz
3b117805fe
Move docsite build scripts to Taskfile, make the electron tasks depend on them (#1298)
This adds the new tasks `docsite:start`, `docsite:build:public`,
`docsite:build:embedded`, `storybook:build`, and `copyfiles:*:*` to
Taskfile.

It also updates the "Build Helper" and "Docsite and Storybook CI/CD"
workflows to use these new tasks.

It also makes the docsite embedded build a dependency of the electron
tasks, ensuring that the embedded docsite is included when building
locally.

Tested and confirms this works on Windows
2024-11-15 12:19:31 -08:00
Evan Simkowitz
3a21d3183c
Fix electron:start task not having wcloud env vars (#1261) 2024-11-11 10:46:58 -08:00
Evan Simkowitz
a170e2c80c
Fix WinGet version bump (#1165)
Use WinGet to install `wingetcreate`, rather than using
Invoke-WebRequest
2024-10-28 22:45:13 -07:00
Mike Sawka
7e6f96348f
fix for waveterm environment variables leaking from prod to dev (#1153) 2024-10-27 13:12:41 -07:00
Mike Sawka
416c26c1cd
vdom 5 (#1143) 2024-10-25 13:45:00 -07:00
Evan Simkowitz
e9fcb9b145
Merge branch 'main' into dev-v0.9 2024-10-25 10:21:33 -07:00
Evan Simkowitz
4fcac60f97
Fix WinGet publish script (#1132) 2024-10-24 18:16:06 -07:00
sawka
e1d538ed8b merge v0.8.13 changes 2024-10-24 17:02:35 -07:00
Evan Simkowitz
10248b3d58
Fix contains order in Taskfile (#1124)
oops
2024-10-24 13:53:03 -07:00
Evan Simkowitz
e6f9ab7336
Fix task naming to avoid conflicts (#1122) 2024-10-24 12:36:55 -07:00
Evan Simkowitz
3bd9249e81
Add steps to publish to Snapcraft (#1102)
Draft until our Snap package is approved for classic confinement:
https://forum.snapcraft.io/t/classic-confinement-request-for-waveterm/43562
2024-10-23 22:24:33 -07:00
Evan Simkowitz
4e86b67936
Merge branch 'main' into dev-v0.9 2024-10-23 14:46:43 -07:00
Evan Simkowitz
8b2805b7fb
Add step to bump Winget package version on publish (#1103)
This will only bump the version when we publish a latest release, not a
beta one. It'll automatically create a PR to the [winget-pkgs
](https://github.com/microsoft/winget-pkgs) repo.

Draft until my New Package PR gets merged:
https://github.com/microsoft/winget-pkgs/pull/185133
2024-10-23 14:04:16 -07:00
Evan Simkowitz
33f05c6e0c
Update data and config paths to match platform defaults (#1047)
Going forward for new installations, config and data files will be
stored at the platform default paths, as defined by
[env-paths](https://www.npmjs.com/package/env-paths).

For backwards compatibility, if the `~/.waveterm` or `WAVETERM_HOME`
directory exists and contains valid data, it will be used. If this check
fails, then `WAVETERM_DATA_HOME` and `WAVETERM_CONFIG_HOME` will be
used. If these are not defined, then `XDG_DATA_HOME` and
`XDG_CONFIG_HOME` will be used. Finally, if none of these are defined,
the [env-paths](https://www.npmjs.com/package/env-paths) defaults will
be used.

As with the existing app, dev instances will write to `waveterm-dev`
directories, while all others will write to `waveterm`.
2024-10-22 09:26:58 -07:00
Mike Sawka
267e40cc67
conditionally write generated files (#890) 2024-09-27 13:46:10 -07:00
Evan Simkowitz
3f15bfd2e4
Revert "better conditional taskfile running" (#872)
Reverts wavetermdev/waveterm#864

There's a typo here that's breaking the Taskfile
2024-09-26 14:36:47 -07:00
Mike Sawka
68dfc4ab90
better conditional taskfile running (#864)
still builds the server, but fixes the generate steps and wsh
2024-09-26 12:49:17 -07:00
Evan Simkowitz
601c0cfbbc
Remove static linking now that we target lower glibc version (#843) 2024-09-24 23:04:58 -07:00
Evan Simkowitz
a9ce1e6775
fix quotes (#841) 2024-09-24 22:50:08 -07:00
Evan Simkowitz
94b0527aa4
don't use zig for arm (#840) 2024-09-24 22:46:48 -07:00
Evan Simkowitz
941864b503
fix taskfile syntax (#839) 2024-09-24 22:31:29 -07:00
Evan Simkowitz
785f8eedb9
only specify older toolchain if not arm (#838) 2024-09-24 22:11:05 -07:00
Evan Simkowitz
0f09a70836
Add native titlebar setting (#837) 2024-09-24 22:05:38 -07:00
Evan Simkowitz
e60e982fb4
Use older glibc target (#836) 2024-09-24 21:56:45 -07:00
Evan Simkowitz
76f4ec641c
Try using Zig instead (#831) 2024-09-24 20:26:04 -07:00
Evan Simkowitz
aa562f1a6c
Add back netcgo tag (#830) 2024-09-24 20:01:50 -07:00
Evan Simkowitz
e7a510c0d6
Make musl-gcc from scratch (#828) 2024-09-24 19:41:58 -07:00
Evan Simkowitz
b83589f20e
Attempt using musl-gcc instead of Glibc (#826) 2024-09-24 19:14:07 -07:00
Evan Simkowitz
bc4385370e
remove netcgo tag 2024-09-24 10:57:17 -07:00
Evan Simkowitz
2f8890144d
remove static linking for linux 2024-09-24 10:45:57 -07:00
Evan Simkowitz
b19bef2ffb
remove vscode storybook task, move to taskfile 2024-09-20 13:39:06 -07:00
sawka
c31bd4a94d thenextwave cleanups 2024-09-19 14:04:47 -07:00
Evan Simkowitz
479414fbd1
If prerelease is false and action is none, remove the prerelease version string (#395)
Updates the version.cjs script so that if the arguments are "none 0" and
a prerelease version is already set, it will be removed. This is
equivalent the behavior of "patch 0", but better aligns with the default
behavior of the Bump Version worklow.
2024-09-18 13:12:34 -07:00
Evan Simkowitz
b7d01c0403
Add automated release flow (#394)
## New release workflow

Build Helper will now automatically create a draft GitHub Release after
it finishes its builds. It will upload a copy of the build artifacts to
this release for easy access.

When a version is ready to be published, edit the GitHub Release and
publish it. This will trigger a workflow to publish the artifacts to our
releases feed.

## Moved artifacts scripts to Taskfile

The scripts formerly located at `scripts/artifacts` have been moved to
the Taskfile. They can now be found at `artifacts:*`.

## Moved releases readme to `RELEASES.md`

Updated the releases readme with step-by-step instructions and moved it
from `scripts/artifacts` to `RELEASES.md`

## Created new AWS identities for artifact upload and publishing

This narrows the scopes of the AWS identities used by the workflows to
upload and publish artifacts. The Build Helper workflow now only has
permission to put files into the artifacts bucket. The Publish Release
workflow only has permission to get files from the artifacts bucket and
put them into the releases bucket.
2024-09-18 12:29:47 -07:00
Evan Simkowitz
5b7535d08f
Add release channels (#385)
## New release flow

1. Run "Bump Version" workflow with the desired version bump and the
prerelease flag set to `true`. This will push a new version bump to the
target branch and create a new git tag.
    - See below for more info on how the version bumping works.
2. A new "Build Helper" workflow run will kick off automatically for the
new tag. Once it is complete, test the new build locally by downloading
with the [download
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/download-staged-artifact.sh).
3. Release the new build using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to beta
users.
4. Run "Bump Version" again with a release bump (either `major`,
`minor`, or `patch`) and the prerelease flag set to `false`.
6. Release the new build to all channels using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to all
users.

## Change Summary

Creates a new "Bump Version" workflow to manage versioning and tag
creation.

Build Helper is now automated.

### Version bumps

Updates the `version.cjs` script so that an argument can be passed to
trigger a version bump. Under the hood, this utilizes NPM's `semver`
package.

If arguments are present, the version will be bumped.
If only a single argument is given, the following are valid inputs:
    - `none`: No-op.
    - `patch`: Bumps the patch version.
    - `minor`: Bumps the minor version.
    - `major`: Bumps the major version.
    - '1', 'true': Bumps the prerelease version.
If two arguments are given, the first argument must be either `none`,
`patch`, `minor`, or `major`. The second argument must be `1` or `true`
to bump the prerelease version.

### electron-builder

We are now using the release channels support in electron-builder. This
will automatically detect the channel being built based on the package
version to determine which channel update files need to be generated.
See
[here](https://www.electron.build/tutorials/release-using-channels.html)
for more information.

### Github Actions

#### Bump Version

This adds a new "Bump Version" workflow for managing versioning and
queuing new builds. When run, this workflow will bump the version,
create a new tag, and push the changes to the target branch. There is a
new dropdown when queuing the "Bump Version" workflow to select what
kind of version bump to perform. A bump must always be performed when
running a new build to ensure consistency.

I had to create a GitHub App to grant write permissions to our main
branch for the version bump commits. I've made a separate workflow file
to manage the version bump commits, which should help prevent tampering.
Thanks to using the GitHub API directly, I am able to make these commits
signed!

#### Build Helper

Build Helper is now triggered when new tags are created, rather than
being triggered automatically. This ensures we're always creating
artifacts from known checkpoints.

### Settings

Adds a new `autoupdate:channel` configuration to the settings file. If
unset, the default from the artifact will be used (should correspond to
the channel of the artifact when downloaded).

## Future Work

I want to add a release workflow that will automatically copy over the
corresponding version artifacts to the release bucket when a new GitHub
Release is created.

I also want to separate versions into separate subdirectories in the
release bucket so we can clean them up more-easily.

---------

Co-authored-by: wave-builder <builds@commandline.dev>
Co-authored-by: wave-builder[bot] <181805596+wave-builder[bot]@users.noreply.github.com>
2024-09-17 13:10:35 -07:00
Sylvie Crowe
a9533b0426
SSH Agent Integration (#334)
Hook into an existing SSH Agent.
This allows us to pull keys already authenticated by the agent and write
to the agent ourselves.

---------

Co-authored-by: Evan Simkowitz <esimkowitz@users.noreply.github.com>
2024-09-06 13:19:38 -07:00
sawka
fc5e53e476 update FE paths 2024-09-05 15:01:28 -07:00
Evan Simkowitz
0413b240dd
Only copy the relevant wavesrv binary when packaging for a specific architecture (#316)
This change shaves ~20 MB off the download size by only copying over the
wavesrv binary that is relevant for whichever architecture we're
currently packaging. This is only relevant for macOS at the moment,
though it can also apply to Windows when we get multi-arch builds
working.

This required renaming our Go binaries from .amd64 to .x64 to comply
with electron-builder's naming conventions.
2024-09-04 11:23:39 -07:00
Mike Sawka
e488862355
remote sysinfo data plotting (#294) 2024-08-30 11:33:04 -07:00
Evan Simkowitz
a2695e8c08
Set up Windows build pipeline (#292)
This adds a new job to the Build Helper pipeline for building for
Windows. This includes code signing via DigiCert. Right now, we can only
build for x64 on Windows as wavesrv fails to build for arm64 in the
default runner and the Windows ARM runner images are missing a bunch of
tooling.

This also adds new separated arm64 and x64 for macOS for those who don't
want to use the universal binary.

This also improves the general code quality of the Taskfile.yml and the
build-helper.yml files.
2024-08-30 10:13:40 -07:00
Mike Sawka
8630e23239
new config system (#283) 2024-08-27 18:49:49 -07:00
Evan Simkowitz
06ed17382e
run yarn when .yarnrc.yml changes 2024-08-26 13:35:10 -07:00
Evan Simkowitz
48600ddfa4
Add task to run yarn when package.json or yarn.lock change 2024-08-26 13:17:35 -07:00
Evan Simkowitz
d8f4292a38
generate task depends on wtype.go 2024-08-22 10:43:45 -07:00