spacedrive/.github/workflows/release.yml

148 lines
4.9 KiB
YAML
Raw Permalink Normal View History

name: Release
on:
pull_request:
paths:
- '.github/workflows/release.yml'
workflow_dispatch:
# From: https://github.com/rust-lang/rust-analyzer/blob/master/.github/workflows/release.yaml#L13-L21
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
RUSTUP_MAX_RETRIES: 10
jobs:
desktop-main:
strategy:
matrix:
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
settings:
- host: macos-13
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
target: x86_64-apple-darwin
bundles: app,dmg
os: darwin
arch: x86_64
- host: macos-14
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
target: aarch64-apple-darwin
bundles: app,dmg
os: darwin
arch: aarch64
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
- host: windows-latest
target: x86_64-pc-windows-msvc
bundles: msi
os: windows
arch: x86_64
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
# - host: windows-latest
# target: aarch64-pc-windows-msvc
- host: ubuntu-22.04
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
target: x86_64-unknown-linux-gnu
Port AppImage build to use appimage-builder (#1785) * Initial port to appimage-builder * Almost * Fix appimage build on arm64 * Custom patch for external binaries run under appimage - Disable bubblewrap sandbox when running under appimage - Change cwd to APPDIR when running under appimage * AppImage Works (for the first lunch, then it crashes with Stack Smash 😭) * Fix stack smashing, now AppImage almos fully works \o/ (gstreamer is still broken) - Temporarily disable the volume watcher when running under appimage (Workaround for the stack smash error) - Wrap gnu lic version check for appimage under conditional compile for glibc targets - Add error handling for the justUpdatedCheck - Fix VITE_LANDING_ORIGIN being undefined * On non glibc systems default to runtime/compat * Use glibc version 2.8 instead of 0 for non-gnu systems * Fix video playback not working due to broken GstRegistry * Build and publish new AppImage release artifact - Fix model location when building deb - Improve model path resolution logic - Remove patchelf dependency from setup script - Fix incorrectly ignore gstreamer dependency in AppImage recipe * Fix clippy complaining about `get_path_relative_to_exe` - Read GLIBC_FAKE_VERSION or use 2.8 for musl in appimage (while the code is there, this is not really supported for now) * Remove appimage tauri target from release CI * Remove setup-buildx-action, not relly needed * typo fix * Fix git describe command running on cwd instead of the repo root dir * Attempt fix weird git permissions errors in CI+docker * Pass CI env to docker appimage * Only use git after installing it * Pass target to appimage build script * Fix permission after creating appimage * -_- * Swap envvar with github ci var * Format * Add instruction on how to manually build an AppImage * Fix typos * docs: add note about running podman with `--privileged` if there's a permission denied error * docs: fix typo and link directly to appimage-building `README.md` * refactor: streamline code and make it a bit cleaner --------- Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2024-01-22 10:52:26 +00:00
bundles: deb
os: linux
arch: x86_64
# - host: ubuntu-22.04
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
# target: x86_64-unknown-linux-musl
# - host: ubuntu-22.04
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
# target: aarch64-unknown-linux-gnu
Port AppImage build to use appimage-builder (#1785) * Initial port to appimage-builder * Almost * Fix appimage build on arm64 * Custom patch for external binaries run under appimage - Disable bubblewrap sandbox when running under appimage - Change cwd to APPDIR when running under appimage * AppImage Works (for the first lunch, then it crashes with Stack Smash 😭) * Fix stack smashing, now AppImage almos fully works \o/ (gstreamer is still broken) - Temporarily disable the volume watcher when running under appimage (Workaround for the stack smash error) - Wrap gnu lic version check for appimage under conditional compile for glibc targets - Add error handling for the justUpdatedCheck - Fix VITE_LANDING_ORIGIN being undefined * On non glibc systems default to runtime/compat * Use glibc version 2.8 instead of 0 for non-gnu systems * Fix video playback not working due to broken GstRegistry * Build and publish new AppImage release artifact - Fix model location when building deb - Improve model path resolution logic - Remove patchelf dependency from setup script - Fix incorrectly ignore gstreamer dependency in AppImage recipe * Fix clippy complaining about `get_path_relative_to_exe` - Read GLIBC_FAKE_VERSION or use 2.8 for musl in appimage (while the code is there, this is not really supported for now) * Remove appimage tauri target from release CI * Remove setup-buildx-action, not relly needed * typo fix * Fix git describe command running on cwd instead of the repo root dir * Attempt fix weird git permissions errors in CI+docker * Pass CI env to docker appimage * Only use git after installing it * Pass target to appimage build script * Fix permission after creating appimage * -_- * Swap envvar with github ci var * Format * Add instruction on how to manually build an AppImage * Fix typos * docs: add note about running podman with `--privileged` if there's a permission denied error * docs: fix typo and link directly to appimage-building `README.md` * refactor: streamline code and make it a bit cleaner --------- Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2024-01-22 10:52:26 +00:00
# bundles: deb
# - host: ubuntu-22.04
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
# target: aarch64-unknown-linux-musl
name: Desktop - Main ${{ matrix.settings.target }}
runs-on: ${{ matrix.settings.host }}
steps:
- name: Maximize build space
if: ${{ runner.os == 'Linux' }}
uses: easimon/maximize-build-space@master
with:
swap-size-mb: 3072
root-reserve-mb: 6144
remove-dotnet: 'true'
remove-codeql: 'true'
remove-haskell: 'true'
remove-docker-images: 'true'
- name: Symlink target to C:\
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: |
New-Item -ItemType Directory -Force -Path C:\spacedrive_target
New-Item -Path target -ItemType Junction -Value C:\spacedrive_target
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Apple API key
if: ${{ runner.os == 'macOS' }}
run: |
mkdir -p ~/.appstoreconnect/private_keys/
cd ~/.appstoreconnect/private_keys/
echo ${{ secrets.APPLE_API_KEY_BASE64 }} >> AuthKey_${{ secrets.APPLE_API_KEY }}.p8.base64
base64 --decode -i AuthKey_${{ secrets.APPLE_API_KEY }}.p8.base64 -o AuthKey_${{ secrets.APPLE_API_KEY }}.p8
rm AuthKey_${{ secrets.APPLE_API_KEY }}.p8.base64
- name: Install Codesigning Certificate
if: ${{ runner.os == 'macOS' }}
uses: apple-actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.APPLE_CERTIFICATE }}
p12-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
- name: Setup System and Rust
uses: ./.github/actions/setup-system
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
with:
token: ${{ secrets.GITHUB_TOKEN }}
[ENG-1054] libheif for Linux (plus fixes) + Webp update (#1405) * Move postinstall script to a preprep script - Fix libheif crate failing to build with our libheif - Rework CI due to postinstall to preprep changes * Linux heif build script + Update webp * Fix ctrl+c/ctrl+v bug * Improve libheif linux script - Add support for linux aarch64 - Add CI workflow to build libheif for linux - Some other misc fixes * Fix libheif CI requires sudo * Fix wrong path for libheif build.rs override in Windows * Fix wrong path manipulations in libheif build script * 🤦 * Use ubuntu-latest in libheif action - Specify glib version in target triple to support old distros - Fix libheif artifact publishing * Fix artifact upload path again * Add musl support for libheif - Remove unused files from libheif artifact - Add setup logic for libheif in postinstall script * Build libheif for linux as a shared lib * Fix meson not building the correct arch - Add logic to get git branch from githubs CI env vars * libheif finnaly works on linux - Make spacedrive binary rpath point to where appimage and deb expects our libs to be - Add some logic to tauri.js to convince tauri to bundle our shared libs - Work-around appimage bundling step breaking sometimes - Add logic to handle sigint in tauri.js to ensure we clean up after ourselves - Rename postinstall.mjs to setup.mjs - Add logic to setup.mjs to point our dev build to our shared libs in linux * Fix windows dekstop dev - Rename setup.mjs to preprep.mjs * test cache-factory * Fix preprep script not parsing the cross compilation target triple and always using the host info to download dependencies - Fix action env vars not being correctly passed - Remove possibility to pass multiple targests to rust action * Don't compile mobile crates on desktop targets * Remove cache-factory pull_request trigger * remove patched tauri cli * Use git plumbing command to get remote branch name - Fallback to reading .git/HEAD if remote name was not retrieved * fix type --------- Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-10-03 17:31:33 +00:00
target: ${{ matrix.settings.target }}
- name: Setup Node.js, pnpm and dependencies
uses: ./.github/actions/setup-pnpm
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
run: |
[ENG-927, ENG-735, ENG-766] Fix Updater & Tauri 1.5 (#1361) * custom updater with toasts * new state management + updated router route * tauri-specific update route * ref * update in prod only * change 'Install' to 'Update' * fix tsconfig * desktop tauri * remove tauri patch * tauri 1.5 * tauri 1.5 * use tauri script * native-deps * Rework preprep and tauri script to better support tauri 1.5 * Update to tauri 1.5.1 - Update workspace and apps/desktop dependencies - Fix mustache import, @types/mustache is not compatible with ES imports - Replace arm64 with aarch64 in machineID, they should be treated the same and this simplyfies the code * Fix tauri updater not building due to missing key - Fix dmg background not being found - Generate an adhoc key for tauri updater with it is enabled and the user is doing a prod build * Fix ctrl+c/ctrl+v typo * Normalie @tanstack/react-query version through workspace - Use undici in scripts instead of global fetch - Fix typecheck * Fix linux prod and dev builds - Improve error handling in tauri.mjs * Normalize dev deps in workspace - Improve linux shared libs setup * Fix CI and server docker * Fix windows - Remove superfluous envvar * Attempt to fix server, mobile, deb and release updater * Attempt to fix deb and mobile again - Fix type on deb dependency - Enable release deb for aarch64-unknown-linux-gnu * Github doesn't have arm runners - Fix typo in server Dockerfile * Publish deb and updater artifacts * remove version from asset name * update commands * log release * Some logs on updater errors * show updater errors on frontend * fix desktop ui caching --------- Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com> Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-10-10 07:30:56 +00:00
pnpm tauri build --ci -v --target ${{ matrix.settings.target }} --bundles ${{ matrix.settings.bundles }},updater
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_PROVIDER_SHORT_NAME: ${{ secrets.APPLE_PROVIDER_SHORT_NAME }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
- name: Package frontend
if: ${{ runner.os == 'Linux' }}
run: |
set -eux
XZ_OPT='-T0 -7' tar -cJf apps/desktop/dist.tar.xz -C apps/desktop/dist .
- name: Publish Artifacts
uses: ./.github/actions/publish-artifacts
with:
os: ${{ matrix.settings.os }}
arch: ${{ matrix.settings.arch }}
[ENG-270, ENG-213] Stabilize release pipeline (#768) * Attempt at building our own ffmpeg dylibs for macOS - Create dockerfile to setup osxcross and required host dependencies for cross-compiling ffmpeg for macOS - Create script to setup required macOS dependencies and build ffmpeg for both x86_64 and aarch64 * Improve dockerfile to better use docker's cache - Attempt at fixing arm64 build (still not there yet) * ARM64 sucessfully compiles \o/ - Use clang for everything (e.g. linker, assembler, ...) - Remove -lc++ because it is now handled internally thanks to a patch - Apply 3 open PRs to osxcross as external patches to solve some of our problems - PR 180 reduces the macports dependencies size by prefering non universal libs for x88 - PR 314 adds the -lc++ flag for macOS SDKs >= 11.1 - PR 379 fix macports pulling incorrects deps for SDK11 and adds support for SDK13 (future proofing, as it does nothing for us rigth now) * Fix relink and copy logic in ffmpeg build script - Ensure ffmpeg and dependencies dylibs are correctly relinked and copied over to the output directory - Copy includes from ffmpeg and dependencies to allow for dev building against these dylibs - Set up symlinks for all dylibs to the common `lib` directory - Remove superfluous linker and compiler options - Add `-headerpad_max_install_names` linker option to accommodate the required relink changes - Remove `--disable-fft` for the arm64 build, as it doesn't seem to be required nowadays - Allow `swresample` and `avdevices` to be compiled as they seem to be expected to exist by `ffmpeg-sys-next` - Disable ffmpeg program compilation - Fix dylibs id to match their new expected location - Fix ffmpeg dylibs inter-linkage not being updated - Add custom patch for osxcross macports to load already downloaded files from cache - Remove the requirement for specifying the darwin version in the Dockerfile - Enable docker cache for macports - Move arm min macOS version ARG to the top * Attempt at building ffmpeg with github actions - Split osxcross setup into it's own Dockerfile to allow exporting it as a image to Dockerhub - Create a github action to build ffmpeg - Add osxcross patch for PR 372 for future proofing (Add support for macOS SDK 13.1) * Remove incompatible step name * Change FFMPEG_VERSION to string to avoid yaml weird type casting * Start to use our ffmpeg build in the macOS - Adjust the macOS setup script to download our ffmpeg build, also replace installing protobuf compiler from brew with grabbing it from it's own repository - Some misc improvement to the *nix setup script - Fix ffmpeg build script not copying static libs (for when we may want to statically link ffmpeg) - Fix ffmpeg build script not taking into acount possible libraries that are multiple paths deep in /lib - Update CI to actions/checkout@v3, v2 is deprecated - Update ffmpeg build CI to not xz the artifacts, as github already zips it anyway * Fix macOS setup not finding the ffmpeg artifact due to a jq script mistake - Comment out embeeding static libs in ffmpeg artifact for now, as they take too much space - Remove incorrect dockerfile settings from editorconfig * Fix protobuf download in macOS - Fix Framework directory creation not following script's dir but cwd - Improve download logic to avoid being rate limited on failures - Return to using xz for ffmpeg build, as it saves quite a bit of space * Replace `OSTYPE` with `$(uname)` for a more standardized way to check which os is running - Fix mobile check using `==` instead of `=` in test command * Fix syntax error in bash 3.x (which is the default in macOS) - Fix jq not downloading all deps and being placed in the incorrect directory * Fix incorrect install_name_tool arguments - Remove leading './' when referencing ffmpeg libs during build * Fix protoc not being executable - Fix some error messages * jq throw input when it is invalid - Enable debug log in setup script when running in CI * Add a dev.js build script for desktop app - Remove dll copy from setup-system.ps1, now done by dev.js - Minor rework to build.js to improve signals and stdio handling * Configure cargo to use FFMPEG_DIR and PROTOC envvars on macOS * Pass GITHUB_TOKEN to macOS setup script in CI * Replace simple curl with gh_curl in github request * Fix some ctrl+c/ctrl+v typos * Add missing ffmpeg deps - Fix missing symlinks for ffmpeg libs in the output_dir/libs - Change arm64 minimum macOS target to 11.2 due to libbrotli only being available precompiled to this version - Add more options to ffmpeg configure in an attempt to reduce its size + improve performance * Rework ffmpeg build script to create a FFMpeg.framework instead of loose dylibs - Disable unused postproc and enabled missing required protocols in ffmpeg configuration - Adjust Dockerfile and setup-script to handle the new FFMpeg.framework * Fix setup script incorrect linking logic for FFMpeg.framework * Forgot to remote the leading path in the lib/header linking logic for FFMpeg.framework * Enable size optimization for ffmpeg - Remove Frameworks directory before setting it up in setup-system.sh * Revert lib id to use `@executable_path/../Frameworks/` instead of `@rpath` - `@rpath` breaks dev builds - Add logic to create less versioned versions of dylibs in setup-system script, due to it being required for compiling ffmpeg-sys-next (not required during runtime, just for compilation) - Add scripts/deps to gitignore * Fix ffmpeg build script not copying unversioned symlinks to FFMpeg.framework - Remove unecessary unversioned symlink logic from setup-system - Add new build scripts for dev and prod that setup the environment and tauri to correctly point to FFMpeg.framework - Rework windows setup-system script to follow the same logic as in macOS setup-system * Attempt at fixing windows setup script - Add powershell editorconfig * Attempt to fix Windows CI * Fix some mistakes in the build scripts - Replace toml lib with something more used and maybe better? - Attempt to fix Windows CI * Fix some more problems with the build script * Another attempt at fixing windows CI * Some more fixes for the windows setup script * Add build.js step to release CI - Implement patch only mode for build.js when running under CI - Implement appeding extra env in cargo config in env.js - Only run windows dlls copy in dev in env.js - Another attempt at fixing windows CI * Maybe this will make the windows CI happy? * Windows CI why dont you work, whyyy? * Try to apease the Windows CI Gods - Disable updater build in macOS, due to tauri-apps/tauri#3933 * Fix build.js extra env vars - Uncomment parts of setup-system.ps1 to check if it keeps working * Uncomment another section and see if windows CI will complain * uncomment some more of setup-system.ps1 * Use Start-Process for robocopy instead of executing it directly - Only raise an error if robocopy exists with a status code >=8 - Revert build.js macOS specific bundles change - Disable updater for now * Remove updater from cargo.toml * Add -PassThru to Start-Process to ensure we get and Process obj back * Comment out more of updater * Improve documentation for both of the docker containers - Fix a harcoded install_name_tool call in the ffmpeg-build-macos.sh script * Configure tauri to copy ffmpeg dlls to windows prod version - Fix windows dlls copy on dev - Stop replacing tauri.conf.json, except on CI, for prod builds and use a tauri.conf.patch.json for any required changes - Don't unset macOSPrivateApi on prod build, we need it for the transparent background - Fix dev.js not exiting when the spawned command was over * Fix windows not find protoc - Fix missing import in env.js * Fix Windows Dlls copy logic for prod build - Fix dev script failing due to missing env - Implement error handler to spawned process * Format + Fix pnpm-lock * Fix video thumb generation failing on Windows due to bad path to CString conversion logic * Fix mobile build - Greatly improve windows setup-script error handling - Install LLVM with winget instead of downloading exe from github * Improve CI a bit - Fix mobile CI not using github token to avoid being rate limited * Fix pnpm not accesible to actions/setup-node * Skip pnpm check on CI * Fix pnpm skip not working - Fix pnpm cache check missing a step * Only lock action to major versions * CI really doesn't like running robocopy directly * Attempt to build our own patched tauri bundler * Trigger new workflow * Fix attempt for patched tauri action tests - Disable cache for patched tauri action - Enable package publishing for patched tauri action * Attempt fix patched tauri publish * Remove commented code from patched tauri workflow - Replace deprecated `actions-rs/toolchain` with `dtolnay/rust-toolchain` * Fix url patching logic for publishing step of patched tauri package * Fix prepublishOnly command for patched tauri package * Adjust patched tauri package package.json * Also patch the specific os/arch sub packages * Instruct napi to stop doing github releases * Patch package.json befor build * Re-enable updater - Patch tauri cli to workaround a tauri bug that prevented use from bundling frameworks in the updater - Update tauri/api to 1.3 and tauri/cli 1.3.1 - Add target triple in the release artifacts name - Use ubuntu-20.04 instead of ubuntu-latest - Configure release workflow to build to all supported platforms - Replace `tauri-apps/tauri-action` with simply calling `pnpm desktop build` - Simplify tauri-patched-cli-js to only build the required macOS binaries - Unify build.js and dev.js in a tauri.js build script, which now acts as an all around wrapper for the tauri/cli * Restore incorrectly removed step from `tauri-patched-cli-js` * Disable auto-run of tauri-patched-cli-js - Update setup-system.sh with the latest tauri-patched-cli-js artifacts * Forgot to mkdir bin * Fix pnpm-lock.yaml not being up to date - Remove pnpm deps caching * Fix variable name conflict * Enable the updater build conditionally - Enable release workflow to test it * Fix artifacts not being published - Change macOS on arm64 minimumSystemVersion to 11.2 - Commented out rust cache to check if this is the culprit to the low memory problem on windows runner - Add some debug log to tauri.js * Fix release workflow artifact uploading * Specify which bundles to build on each platform - Attempt fix apple arm build - Don't include internal deb archives in linux updater artifact * Attempt to fix apple arm build - Fix dmg background not applying * Fix incorrect semver usage * Patch swift-rs to see if that fix apple arm64 release build * Update swift-rs submodule - Remove unused deps lodash.merge * Configure so only release workflow runs without cache - Improve tauri.js logs * Ignore `crates/swift-rs` * Revert "Ignore `crates/swift-rs`" - Remove `crates/swift-rs` before running `cargo fmt` This reverts commit 851bd84373fd7263f0efe4876a864cff0b2af75b. * Github CI input/output are always string - Attempt to fix Windows Clippy * Fix CI syntax error * Fix mobile CI - Disable pnpm deps caching - Disable rust targets caching on Windows - Configure cache factory to run for all targets * Remove `crates/swift-rs` * Attempt fix Mobile CI - Enable cache factory run in pull_request to test it - Specific more path for the CI run to ignore - Specify path that will trigger the cache factory run - Some cleanup in the setup-pnpm action * Remove restore-cache options - Add prefix key to cache-factory - Fix LLVM cache-hit check - Add libheif to FFMpeg.framework * Remove submodule clone from actions * Add fake deps to ffmpeg build dockerfile - Fake install deps that aren't really necessary to build ffmpeg - Fail ffmpeg build script if it can't find a macports deps - Copy libheif headers to Framework * Remove automatic trigger for relase and pull request trigger for cache-factory actions * Remove pnpm setup from Cache factory - Cache factory is exclusivly for rust deps caching, no need to setup Node and pnpm with it * Re-enabled fail-fast in Github CI
2023-05-15 18:02:56 +00:00
target: ${{ matrix.settings.target }}
2023-04-21 18:46:23 +00:00
profile: release
release:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
name: Create Release
needs: desktop-main
permissions:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Create Release
# TODO: Change to stable version when available
uses: softprops/action-gh-release@4634c16e79c963813287e889244c50009e7f0981
with:
draft: true
files: '*/**'