0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 03:52:17 +02:00
Commit Graph

159 Commits

Author SHA1 Message Date
moiseev-signal
c5537a98a5
Add .editorconfig 2024-02-20 10:26:38 -08:00
Alex Konradi
0676a89c90
Build Swift docs in CI
Fix existing documentation issues. Prevent backsliding on documentation by 
requiring cross-links to be correct for CI checks to pass.
2024-02-16 17:14:03 -05:00
Alex Konradi
8959e64ed1
Build TESTING_ functions for Android test
Run tests that call native TESTING_ functions on Android. This requires 
building a separate version of libsignal_jni.so with the testing functions 
included. The test code is still omitted from the published artifacts.
2024-02-15 16:53:05 -05:00
moiseev-signal
37aa5fb323
ci: Upgrade actions to latest versions for Node 20.0 compatibility 2024-02-13 10:45:50 -08:00
Alex Konradi
bd26a00b3e Clean cargo outputs before changing working dirs
Clean the contents of the default target directory before switching.
This should hopefully help us to avoid running out of disk space during
the following steps (running cross-version tests).
2024-02-12 14:06:26 -05:00
Alex Konradi
e95f00d849
Print size difference of a PR versus main
Use the GitHub CLI utility, if present, to fetch the size from the logs of the 
"Build and Test" workflow run for the merge-base of the current branch and 
upstream main. This represents the true "delta" attributable to the current 
branch, as opposed to the integral of changes since the last release.
2024-02-01 16:30:42 -05:00
Jordan Rose
c15a47d9a4 Slow Tests: Run tests on Docker-prebuilt Node module 2024-01-10 17:16:11 -08:00
Jordan Rose
8136b1d4a0 CI: Use up-to-date path to Android's sdkmanager 2024-01-10 12:22:55 -08:00
Jordan Rose
bc3ba5a714 CI: Make sure pipefail is active for shell commands that use pipelines 2024-01-10 12:22:55 -08:00
Alex Konradi
72ccec8cdd
Fix java tests
- use int instead of promoting to long
- add missing return type to fix compilation
 - run auto-formatter

Also add the check that would have caught all of these to CI
2024-01-10 14:48:13 -05:00
Jordan Rose
48eb4c0f3c CI: Run everyday tests with pinned Rust version, not latest stable
...in addition to our usual nightly.

Move the run commands for latest-stable to the Slow Tests (reusing the
cross-protocol-version testing job rather than making a new one).
2024-01-05 10:46:48 -08:00
Jordan Rose
d952869106 CI: Include the cargo-about version in the local tools cache key
GitHub was restoring the 0.5.7 cache, and then not updating the cache
after installing 0.6.0 because it was successfully restored.
2023-12-20 14:03:04 -08:00
Alex Konradi
20c4966cd8
Prevent auto-merging of acknowledgement text files (#454)
Adjust the attributes so that git will treat the generated acknowledgment files 
as binary for the purposes of merging. This will ensure that a merge of two 
branches that both alter the acknowledgments will require manual resolution 
(ideally by re-running the generation script).
2023-12-13 17:02:19 -05:00
Alex Konradi
d168b556da
Fix AGPL 3 license count 2023-12-13 16:08:27 -05:00
Alex Konradi
acabde87e2 Use cargo-about 0.6.0 to produce acknowledgements
The new version introduced a couple changes that are reflected here:

- Rename override_git_commit -> override-git-commit in about.toml since
  that's now the canonical spelling.
- Regenerate the license list since a bug was fixed that changed the
  semantics of the count.

Also pin the version in our documentation and in the script to prevent
differences in behavior depending on when cargo-about was installed on
developer machines.
2023-12-13 14:52:31 -05:00
Jordan Rose
88a25e889e Collect acknowledgments for libsignal's Cargo dependencies 2023-12-11 16:39:33 -08:00
Jordan Rose
94d1e151fe CI: Add a manual check for -Xcheck:jni warnings 2023-12-11 14:34:25 -08:00
Jordan Rose
a1fc1f45a5
Node: Build win-arm64 against unofficial-builds.nodejs.org 2023-11-02 20:07:41 -07:00
Jordan Rose
400fb92da9 CI: Pull the 32-bit Rust tests out to separate jobs
The Rust jobs are currently the long pole in the CI tests, but the
32-bit tests have to recompile everything except the proc-macros, so
they add the most time on top of the other steps. By separating them
to their own jobs (one for stable, one for nightly), we pay a little
extra in CI-minutes to save in turnaround time.
2023-11-02 16:27:47 -07:00
akonradi-signal
3977db72bf
Add libsignal-net CDSI lookup function
Add a function that performs a CDSI request given authentication credentials
received from the chat service.
2023-10-31 11:15:46 -04:00
Jordan Rose
61f2cda107 Add TESTING.md, document how to run Rust tests on emulators 2023-10-27 10:25:27 -07:00
Jordan Rose
c9a2faae4c CI: Make sure the Android tests build 2023-10-26 13:25:43 -07:00
Jordan Rose
179ea8879d CI: Have mypy check for compatibility with Python 3.8 (up from 3.6) 2023-10-10 12:34:30 -07:00
moiseev-signal
840a1906c7
Update prost to version 0.12 2023-09-20 14:00:54 -07:00
Jordan Rose
ffc6747553 CI: Add protocol/cross-version-testing to Slow Tests
(because it has to download and build many libsignal versions)
2023-09-20 06:35:36 -07:00
akonradi-signal
d07b90f603
Fix Rust documentation
Fix warnings identified by cargo doc and require that the docs build successfully in the future.
2023-09-15 12:17:29 -04:00
Jordan Rose
3810154436 Automate the Android and Server publishing to Sonatype 2023-08-25 12:33:56 -07:00
Jordan Rose
4331c12ce6 iOS: Stop building for Catalyst
This commit retains minimal *support* to build for Catalyst, but since
we won't be testing it anymore it could break at any time.
2023-08-25 12:22:13 -07:00
Jordan Rose
22e4795a06 CI: Only run the slow tests on the private repo 2023-07-20 15:49:06 -07:00
Jordan Rose
65ccd5af11 CI: Remove -Z unstable-options from Rust tests
This was previously needed for `--include-ignored`, but no longer.
2023-06-08 13:47:39 -07:00
Jordan Rose
db0ae12b29 CI: Run Android Emulator tests on Linux rather than macOS
The Android emulator works a lot better with hardware acceleration,
but as of 2023-02-23 that can be done with larger Linux runners as
well as macOS instances. Switch over for better reliability (and lower
cost).
2023-06-02 16:35:54 -07:00
Jordan Rose
e1e80aa2d0 CI: Create a commit comment when scheduled Slow Tests fail 2023-05-31 16:27:24 -07:00
Jordan Rose
5b653c670c CI: Add the Windows ARM64 cross-compile to the Slow Tests
Some of our dependencies build using CMake, and the interaction
between CMake and Visual Studio cross-compilation can get a bit odd.
2023-05-31 13:57:48 -07:00
Max Moiseev
e8b1e159dd Test benches in CI 2023-05-24 16:09:09 -07:00
Jordan Rose
0e74a41eb9 bridge: Put signal-media behind a feature flag, off for iOS by default
The JNI tests have also been conditionalized in case we want to take
this out for Android as well. (Node still unconditionally depends on
it being present.) I've given it a separate feature flag from just
ffi/jni/node so that we can preserve the tests Jessa wrote for each
platform.
2023-05-09 11:02:31 -07:00
Jordan Rose
d039686b6b CI: Update for restrictive GitHub permissions 2023-03-13 16:53:18 -07:00
Jordan Rose
f781b17e74 swift: Update to the current version of cbindgen
...which handles enum variants slightly differently under the
configuration options we have ('remove_underscores', relevant for
generic types rather than enum variants). The new style is closer to
Apple-idiomatic anyway.
2023-02-27 14:07:19 -08:00
Max Moiseev
1ddbb95ad4 Allow writing a checksum file from ios_artifacts action 2023-02-13 11:21:23 -08:00
Max Moiseev
58ebf5f06d Bump NDK version to match the Github runner update 2023-02-13 10:03:45 -08:00
Jordan Rose
61d6c8b3f0 CI: Put the libsignal_ffi prebuild checksum in the GitHub Release 2023-02-09 11:18:24 -08:00
Jordan Rose
06961fa2f8 GitHub: Use shasum (comes with macOS) instead of sha256sum (coreutils) 2023-02-09 11:18:24 -08:00
Jordan Rose
63e45850c4 CI: Add a GitHub workflow to publish iOS prebuilds 2023-01-26 13:00:10 -08:00
Jordan Rose
5b3d8bb731 Remove Android 19 support 2023-01-26 12:59:06 -08:00
Jordan Rose
9c02d7a8cd Pods: Change the podspec to download prebuilds
Rather than building the Rust parts of libsignal as part of `pod
install`, fetch them from build-artifacts.signal.org. This requires
adding

    ENV['LIBSIGNAL_FFI_PREBUILD_CHECKSUM'] = '...'

to the consuming Podfile. The referenced archives are downloaded to
~/Library/Caches/org.signal.libsignal, and are unarchived as part of
the build. (The archives are outside the build directory so that a
clean build does not require a new download.)

Building with LibSignalClient as a local pod is still supported; in
that case everything will refer to the local target/ directory
instead. Use swift/build_ffi.sh to build as usual.
2023-01-12 16:47:28 -08:00
Jordan Rose
942a45b3f5 GitHub: Add stale.yml 2022-12-05 12:33:48 -08:00
Jordan Rose
b8ac70227d Android: no need to set ANDROID_NDK_HOME when using Gradle
The Android Gradle plugin already allows you to specify which NDK to
use; we should let the plugin find it for us.
2022-12-05 10:02:54 -08:00
Jordan Rose
572ba1e38b Update Rust to nightly-2022-11-03, and the Android NDK to r25b
These are intertwined: older versions of Rust don't support the newer
NDK, but the newer Rust can't successfully compile BoringSSL against
the older NDK.

This requires a boring-sys update to find the Android NDK sysroot in
the right place.
2022-12-01 12:23:57 -08:00
Jordan Rose
221174b626
Update GitHub actions
And
- Use modern output-setting syntax
- Replace actions-rs/toolchain and JS-DevTools/npm-publish
- Use setup-node's node-version-file argument instead of reading
  from .nvmrc manually.
- Pin dorny/paths-filter
- Replace svenstaro/upload-release-action with ncipollo/release-action
2022-11-09 09:46:12 -08:00
Jordan Rose
cbe7b8a86c GitHub: run Android tests in the emulator as part of the Slow Tests 2022-08-23 10:45:43 -07:00
Jordan Rose
eff149b398 GitHub: Build Ubuntu Node releases using Docker, for Ubuntu 16 compat
The only supported way to target an older glibc is to build against
that glibc; consequently, we need to build on an Ubuntu 16 system (or
similar) to target Ubuntu 16. This requires downloading second-party
versions of Clang and CMake, which are too old in the default Ubuntu
repository, as well as building our own Python.

Do all this in a new Dockerfile based on Ubuntu 16.04. This isn't as
rigorous as the Java "reproducible build" Dockerfile, since we're not
pinning the base image or the repositories we're fetching from, but
it's still an image with the environment and tools we need.
2022-08-01 15:59:29 -07:00