* build(firefox): check file size
if building `firefox` or `firefox-mv3`
* check if any file(s) exceeds 4M (megabytes)
- If true, fail and provide basic message.
* style: add clarity
sytle: add error message
* fix: relocate step
ensure final step of source files before validating
* test: add failure condition
* fix: source file target directory
* fix: test for failure condition
* test: remove failure condition
remove lines used for testing
* [deps]: Update dtolnay/rust-toolchain digest to b3b07ba
* fix(build): comply with ci linter in the test workflow
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Addison Beck <github@addisonbeck.com>
* jest and rust coverage upload separated as one step
* wrong file paths when downloading coverage
* correct relative coverage paths with sources
* Update .github/workflows/test.yml
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* Applies patch to enable the autofill extension
* Fixes the zip command
* Updates the signing identity
* Fixes a typo in a github action
* Moves the security command to a previous action
* Updates workflow to work on the PR branch
* Updates the workflow to build from this branch
* Forces native module build
* Adds profile to extension building
* Enables the autofill production config
* List the profiles
* Copies the autofill provisioning profile to Xcode
* Updates the provisioning profile used for the autofill extension
* Alters how the provisioning profile is provided to xcodebuild
* Adds a mas build with the autofill extension
* Print variables
* Removes spaces from the config file
* Updates all provisioning profile installation steps
* Adds a new provisioning profiles location
* Updates the inherited entitlements
* Passes in identity and provisioning profile in after sign call
* Removes mac dev cert from keychain
* Undoes after sign changes
* Adds resign step to workflow
* Fixes the codesign call
* Adds profile argument to electron builder
* Adds resign step to mas builds
* Removes resign step
* Enable debug messages for electron builder signing
* Copies autofill profile instead of desktop
* Add autofill extension to signIgnore list in electron-builder config
* Comment out if in test flight
* Bump version
* Moves the autofill extension building to after pack
* Update version
* Fixes windows and linux builds
* Forces native build
* Removes installation of unrelated certificates
* Comments out synchronous function call
* Update autofill project configuration
* Adds ls command to debug framework
* Moves the extension build script back
* Updates mac developer id provisioning profile
* Updates build location for autofill extension release versions
* Removes unnecessary extension build call
* Updates the version number
* Debug signing
* Removes team identifier from mac entitlements
* Adds new inherited entitlements for mac
* Updates the version number
* Debug version number
* Removes check for creating fastlane secrets
* Readds check for cache before building
* Reverts workflow changes in build-desktop.yml
* Cleans up after-sign and extension build script
* Removes installation of unnecessary mac signing certs
---------
Co-authored-by: Michal Checinski <mchecinski@bitwarden.com>
* Test ARM64 build
* Remove sudo
* Change to public preview runner
* Change cache key for architectures
* Test
* Test
* Test
* remove x86 musl target - troubleshooting build error
* native module troubleshooting
* remove cross-platform for testing
* attempt to resolve cross-platform issue
* support more arm64 build types
* fix missed amd to arm update
* missing dependency during env setup
* lxd troubleshooting
* install lxd with snap instead
* electron-builder debug
* simplified script for testing
* testing
* 22.04 to 20.04
* try ubuntu 24.04 runner
* add dist script
* update build command
* troubleshoot 24.04 compatibility
* remove lxd before merging main
* add comment, bump arm runner down to 22.04
* revert to tar.gz support only for this PR
* testing cli arm builds
* fix build target designation
* adjust runner designation
* runner name typo
* not needed currently
* adjust build.js logic and call in workflow
* address styling feedback and unnecessary rust toolchain call
* simplify build cli os matrix
* revert x86 linux builds to cross-platform command for build.js
---------
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
* Added fork name to tag
* Added logging.
* Added pull_request_target
* Added repository name if on fork.
* Limited characters
* Added sanitization
* Moved to env var for extra security.
* Update TestFlight deployment to use Fastlane for app uploads
* Update TestFlight deployment to use Fastlane for app uploads
* Fix
* Fix create secret for fastlane
* Fix create secret for fastlane
* Fix create secret for fastlane
* Install gsed to use sed on macos runner
* Create test file
* Fix test
* Use actual token
* Add TestFlight distribution option for QA testing
* Update .github/workflows/build-desktop.yml
Co-authored-by: MtnBurrit0 <77340197+mimartin12@users.noreply.github.com>
* Add if to secret construction for fastlane
---------
Co-authored-by: MtnBurrit0 <77340197+mimartin12@users.noreply.github.com>
* [BRE-610] - Sign windows CLI
* little fix
* testing path to script
* testing script path
* Testing windows signing script
* single line run
---------
Co-authored-by: Andy Pixley <3723676+pixman20@users.noreply.github.com>
* Modified Scan workflow to contain PR number during a PR
* Update .github/workflows/scan.yml
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* feat: create copy of desktop build for PR target
* chore: add temporary file to trigger ci
* fix: remove check-run from regular desktop build
* feat: change browser build to not use pr target
* fix: skip build-safari if secret is not available
* feat: skip safari build if secrets are not available
* feat: let windows desktop build without secrets
* fix: has_secrets not being output correctly
* feat: let macos desktop build without secrets
* feat: don't build browser as part of desktop
* feat: change CLI to pull_request
* feat: let web build without secrets
* feat: tweak lint to run on PR and not just push
* feat: add PR target workflows
* fix: remove wip files
* fix: lint on hotfix-rc branches
* feat: add new workflows to CODEOWNERS
* fix: remove workflow_dispatch
pull_request_target are only intended to be used with contributor PRs and we cannot dispatch builds for these branches so there was no point having that option.
* desktop native written in rust code coverage
* working directory keyword missing fix
* use the same cargo-llvm-cov version as sdk
* rust coverage job working directory
* rust coverage job working directory
* fixing ci
* fixing ci
* fixing ci
* fixing ci
* fixing ci
* fixing ci
* pinning runners
* pinning runners
* remove codecov token
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead.
Moves the following functionality to `ui-common`.
- `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`.
- `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
* Run clippy and rustfmt on CI
* Error on warnings and fix a couple of missed lints
* Move import inside function
* Fix unix lints
* Fix windows lints
* Missed some async tests
* Remove unneeded reference
* Revert "fix: target workflows not triggering on pull_request_target (#12370)"
This reverts commit 645d36f465.
* Revert "[PM-15126] Tighten scope of our client build pipelines to remove reliance on secrets (#12243)"
This reverts commit f8c33ea04b.
* feat: create copy of desktop build for PR target
* chore: add temporary file to trigger ci
* fix: remove check-run from regular desktop build
* feat: change browser build to not use pr target
* fix: skip build-safari if secret is not available
* feat: skip safari build if secrets are not available
* feat: let windows desktop build without secrets
* fix: has_secrets not being output correctly
* feat: let macos desktop build without secrets
* feat: don't build browser as part of desktop
* feat: change CLI to pull_request
* feat: let web build without secrets
* feat: tweak lint to run on PR and not just push
* feat: add PR target workflows
* fix: remove wip files
* fix: lint on hotfix-rc branches
* feat: add new workflows to CODEOWNERS
* Switch to oo7 and drop libsecret
* Fix tests
* Fix windows
* Fix windows
* Fix windows
* Fix windows
* Add migration
* Update apps/desktop/desktop_native/core/src/password/unix.rs
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
* Remove libsecret in ci
* Move allow async to trait level
* Fix comment
* Pin oo7 dependency
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
Refactor the remaining logic from gulp. Part of the browser build script
refactor effort.
Webpack is now responsible for performing most of the operations previously
done by gulp. This includes: - Setting browser specific class - Building the
manifest file The `package.json` is modified to include browser specific
commands for `build`, `build:prod`, `build:watch` and `dist`.
# Manifests
Manifests now uses the `copy-webpack-plugin` `transform` feature. The logic is
located in `apps/browser/webpack/manifest.js`. It reads a template, which
supports some basic operations primarily overriding with browser specific
fields using `__browser__`. The `manifest.json` for both regular and mv3
builds are identical to our existing manifests except:
- `applications` renamed to `browser_specific_settings`.
- `permissions` sorted alphabetically.
# Safari build
Safari requires additional packaging commands. This is implemented as a
powershell script due to the cross-platform nature, and since we generally
require powershell in our distribution pipelines. An alternative would be to
write it in bash, but bash is less powerful and would require some additional
commands like `jq`. Another alternative is to write it using js, but that would
require additional dependencies.
* feat: update sdk service abstraction with documentation and new `userClient$` function
* feat: add uninitialized user client with cache
* feat: initialize user crypto
* feat: initialize org keys
* fix: org crypto not initializing properly
* feat: avoid creating clients unnecessarily
* chore: remove dev print/subscription
* fix: clean up cache
* chore: update sdk version
* feat: implement clean-up logic (#11504)
* chore: bump sdk version to fix build issues
* chore: bump sdk version to fix build issues
* fix: missing constructor parameters
* refactor: simplify free() and delete() calls
* refactor: use a named function for client creation
* fix: client never freeing after refactor
* fix: broken impl and race condition in tests
* feat: add sdk override to desktop build
* feat: add SDK version to browser about dialog
* feat: add sdk override to browser build
* fix: `npm ci` overriding the override
* fix: artifacts not properly downloaded
* fix: switch to new repository
* feat: add debug version function to web
* feat: add sdk-version to CLI
* feat: add version to desktop
* feat: add override to cli
* feat: add override to web
* fix: cli version acting as default command
* fix: consistent workflow input name
* feat: add error handling
* feat: upgrade sdk-internal
* fix: forgot to update package lock
* fix: broken CI build
move sdk version to a regular command
* chore: revert version changes
* refactor: move error handling code
* chore: bump SDK to 0.2.0.main-1
* fix: clean up references to inputs.sdk_commit
* refactor: rename `init` to `applyVersionToWindow`