2023-04-03 08:12:28 +00:00
|
|
|
name: Mobile CI
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- main
|
2023-04-12 02:36:16 +00:00
|
|
|
pull_request:
|
|
|
|
paths:
|
|
|
|
- 'apps/mobile/**'
|
|
|
|
- '.github/workflows/mobile-ci.yml'
|
|
|
|
- 'core/**'
|
|
|
|
- 'crates/**'
|
|
|
|
- 'packages/assets/**'
|
|
|
|
- 'packages/client/**'
|
|
|
|
- 'packages/config/**'
|
2023-04-03 08:12:28 +00:00
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
env:
|
|
|
|
SPACEDRIVE_CUSTOM_APT_FLAGS: --no-install-recommends
|
|
|
|
SPACEDRIVE_CI: '1'
|
2024-02-21 14:18:15 +00:00
|
|
|
# From: https://github.com/rust-lang/rust-analyzer/blob/master/.github/workflows/ci.yaml
|
|
|
|
CARGO_INCREMENTAL: 0
|
|
|
|
CARGO_NET_RETRY: 10
|
|
|
|
RUST_BACKTRACE: short
|
|
|
|
RUSTUP_MAX_RETRIES: 10
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
# Cancel previous runs of the same workflow on the same branch.
|
|
|
|
concurrency:
|
|
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
|
|
|
jobs:
|
2024-01-10 09:40:18 +00:00
|
|
|
js:
|
|
|
|
name: JS
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2024-02-28 23:52:24 +00:00
|
|
|
uses: actions/checkout@v4
|
2024-01-10 09:40:18 +00:00
|
|
|
|
2024-02-28 23:52:24 +00:00
|
|
|
- name: Setup Node.js, pnpm and dependencies
|
|
|
|
uses: ./.github/actions/setup-pnpm
|
2024-01-10 09:40:18 +00:00
|
|
|
with:
|
2024-02-28 23:52:24 +00:00
|
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
2024-01-10 09:40:18 +00:00
|
|
|
|
|
|
|
- name: Build mobile JS
|
|
|
|
run: pnpm mobile export
|
|
|
|
|
2023-04-03 08:12:28 +00:00
|
|
|
# Disabled until I can figure out why our app on x86_64 crashes on startup.
|
|
|
|
# android:
|
|
|
|
# name: Android
|
|
|
|
# runs-on: macos-12
|
|
|
|
# steps:
|
|
|
|
# - name: Checkout repository
|
2024-02-28 23:52:24 +00:00
|
|
|
# uses: actions/checkout@v4
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Setup Java JDK
|
|
|
|
# uses: actions/setup-java@v3.10.0
|
|
|
|
# with:
|
|
|
|
# java-version: '18'
|
|
|
|
# distribution: 'temurin'
|
[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 Node.js, pnpm and dependencies
|
|
|
|
# uses: ./.github/actions/setup-pnpm
|
2023-04-03 08:12:28 +00:00
|
|
|
# with:
|
[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
|
|
|
# token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
#
|
|
|
|
# - name: Setup System and Rust
|
|
|
|
# uses: ./.github/actions/setup-system
|
2023-04-03 08:12:28 +00:00
|
|
|
# with:
|
[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
|
|
|
# token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# setup-arg: mobile
|
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Setup Android SDK Tools
|
|
|
|
# uses: android-actions/setup-android@v2.0.2
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Cache NDK
|
|
|
|
# uses: actions/cache@v3
|
|
|
|
# with:
|
2024-02-09 15:42:42 +00:00
|
|
|
# path: ${{ env.ANDROID_HOME }}/ndk/26.1.10909125
|
|
|
|
# key: ndk-26.1.10909125
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Install NDK
|
2024-02-09 15:42:42 +00:00
|
|
|
# run: echo "y" | sudo ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.1.10909125"
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Cache Gradle
|
|
|
|
# uses: gradle/gradle-build-action@v2
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Build Android
|
|
|
|
# working-directory: ./apps/mobile/android
|
|
|
|
# run: chmod +x ./gradlew && ./gradlew assembleRelease -PreactNativeArchitectures=x86_64 --no-daemon
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Cache AVD
|
|
|
|
# uses: actions/cache@v3
|
|
|
|
# id: avd-cache
|
|
|
|
# with:
|
|
|
|
# path: |
|
|
|
|
# ~/.android/avd/*
|
|
|
|
# ~/.android/adb*
|
|
|
|
# key: avd-30
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Generate AVD Snapshot
|
[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
|
|
|
# if: ${{ steps.avd-cache.outputs.cache-hit != 'true' }}
|
2023-04-03 08:12:28 +00:00
|
|
|
# uses: ReactiveCircus/android-emulator-runner@v2.28.0
|
|
|
|
# with:
|
|
|
|
# arch: x86_64
|
|
|
|
# api-level: 30
|
|
|
|
# target: google_apis
|
2024-02-09 15:42:42 +00:00
|
|
|
# ndk: 26.1.10909125
|
2023-04-03 08:12:28 +00:00
|
|
|
# ram-size: 4096M
|
|
|
|
# emulator-boot-timeout: 12000
|
|
|
|
# force-avd-creation: false
|
|
|
|
# emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
|
|
|
# disable-animations: false
|
|
|
|
# script: echo "Generated AVD snapshot."
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Install Maestro
|
|
|
|
# run: |
|
|
|
|
# # workaround for https://github.com/mobile-dev-inc/maestro/issues/877
|
|
|
|
# export MAESTRO_VERSION=1.21.3; curl -Ls "https://get.maestro.mobile.dev" | bash
|
|
|
|
# echo "$HOME/.maestro/bin" >> $GITHUB_PATH
|
[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
|
|
|
#
|
2023-04-03 08:12:28 +00:00
|
|
|
# - name: Run Tests
|
|
|
|
# uses: ReactiveCircus/android-emulator-runner@v2.28.0
|
|
|
|
# with:
|
|
|
|
# arch: x86_64
|
|
|
|
# api-level: 30
|
|
|
|
# target: google_apis
|
2024-02-09 15:42:42 +00:00
|
|
|
# ndk: 26.1.10909125
|
2023-04-03 08:12:28 +00:00
|
|
|
# ram-size: 4096M
|
|
|
|
# emulator-boot-timeout: 12000
|
|
|
|
# force-avd-creation: false
|
|
|
|
# emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
|
|
|
# disable-animations: true
|
|
|
|
# script: |
|
|
|
|
# adb install -r apps/mobile/android/app/build/outputs/apk/release/app-release.apk
|
|
|
|
# adb wait-for-device
|
2024-02-28 23:52:24 +00:00
|
|
|
# ./apps/mobile/scripts/run-maestro-tests.sh android
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
ios:
|
|
|
|
name: iOS
|
2024-03-25 19:42:37 +00:00
|
|
|
runs-on: macos-12
|
2023-04-03 08:12:28 +00:00
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2024-02-28 23:52:24 +00:00
|
|
|
uses: actions/checkout@v4
|
2023-04-03 08:12:28 +00:00
|
|
|
|
2024-03-25 19:42:37 +00:00
|
|
|
# - name: Install Xcode
|
|
|
|
# uses: maxim-lobanov/setup-xcode@v1
|
|
|
|
# with:
|
|
|
|
# xcode-version: latest-stable
|
2023-04-03 08:12:28 +00:00
|
|
|
|
[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
|
2023-04-03 08:12:28 +00:00
|
|
|
with:
|
[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
|
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
setup-arg: mobile
|
2023-04-03 08:12:28 +00:00
|
|
|
|
2023-09-28 10:03:46 +00:00
|
|
|
- name: Setup Node.js, pnpm and dependencies
|
|
|
|
uses: ./.github/actions/setup-pnpm
|
|
|
|
with:
|
|
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
2023-09-13 10:07:26 +00:00
|
|
|
- name: Generate iOS Project
|
|
|
|
working-directory: ./apps/mobile
|
|
|
|
run: pnpm expo prebuild --platform ios --no-install
|
|
|
|
|
2024-02-14 20:44:02 +00:00
|
|
|
# Hermes doesn't work with Cocoapods 1.15.0
|
|
|
|
# https://forums.developer.apple.com/forums/thread/745518
|
|
|
|
- name: Setup Cocoapods
|
|
|
|
uses: maxim-lobanov/setup-cocoapods@v1
|
2023-04-03 08:12:28 +00:00
|
|
|
with:
|
2024-02-14 20:44:02 +00:00
|
|
|
version: latest
|
|
|
|
|
|
|
|
# - name: Cache Pods
|
2024-02-21 09:27:40 +00:00
|
|
|
# uses: actions/cache@v4
|
2024-02-14 20:44:02 +00:00
|
|
|
# with:
|
|
|
|
# path: |
|
|
|
|
# ./apps/mobile/ios/Pods
|
|
|
|
# ~/Library/Caches/CocoaPods
|
|
|
|
# ~/.cocoapods
|
|
|
|
# key: pods-${{ hashFiles('./apps/mobile/ios/Podfile.lock') }}
|
|
|
|
# restore-keys: pods-
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
- name: Install Pods
|
|
|
|
working-directory: ./apps/mobile/ios
|
|
|
|
run: pod install --repo-update
|
|
|
|
|
|
|
|
- name: Build iOS
|
|
|
|
working-directory: ./apps/mobile/ios
|
2024-02-21 09:27:40 +00:00
|
|
|
run: xcodebuild -workspace ./Spacedrive.xcworkspace -scheme Spacedrive -configuration Release -sdk iphonesimulator -derivedDataPath build -arch "$(uname -m)"
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
- name: Install Maestro
|
|
|
|
run: |
|
|
|
|
curl -Ls "https://get.maestro.mobile.dev" | bash
|
|
|
|
brew tap facebook/fb
|
[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
|
|
|
brew install facebook/fb/idb-companion
|
2024-02-28 23:52:24 +00:00
|
|
|
echo "${HOME}/.maestro/bin" >> $GITHUB_PATH
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
- name: Run Simulator
|
2024-03-25 19:42:37 +00:00
|
|
|
id: run_simulator
|
2024-02-28 23:52:24 +00:00
|
|
|
uses: futureware-tech/simulator-action@v3
|
2023-04-03 08:12:28 +00:00
|
|
|
with:
|
2024-03-25 19:42:37 +00:00
|
|
|
model: 'iPhone 14'
|
|
|
|
os_version: 16
|
2024-03-13 20:53:00 +00:00
|
|
|
erase_before_boot: false
|
2023-04-03 08:12:28 +00:00
|
|
|
|
|
|
|
- name: Run Tests
|
2024-03-25 19:42:37 +00:00
|
|
|
run: ./apps/mobile/scripts/run-maestro-tests.sh ios ${{ steps.run_simulator.outputs.udid }}
|