Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Axolotl presage #985

Merged
merged 214 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
bcdf3ed
remove the old go backend
nanu-c Jan 21, 2023
e0ca075
add rust backend with desktop linking
nanu-c Jan 21, 2023
b9d47a0
make websocket handler more failsafe
nanu-c Jan 23, 2023
9778037
fix route
nanu-c Jan 23, 2023
c74a022
fix mutex for message lists and fix showing the chat list
nanu-c Jan 23, 2023
9472ae9
update presage commit
nanu-c Jan 23, 2023
9777efb
Add the ability to send text messages
nalysius Jan 24, 2023
af79e89
Merge pull request #988 from nalysius/send-message
nanu-c Jan 25, 2023
5df5a19
add notifications and hide non data messages
nanu-c Jan 26, 2023
4c50bbd
add notifications and hide non data messages
nanu-c Jan 26, 2023
dbeec75
hide empty messages
nanu-c Jan 26, 2023
535fdf5
Add group fixes from presage
nanu-c Jan 26, 2023
f277b4b
Show reactions
nanu-c Jan 26, 2023
302bfa0
update axolotl web dependencies
nanu-c Jan 26, 2023
a5ad672
use yarn for building and fix main scrolling
nanu-c Jan 26, 2023
ecfe194
put message handlers in proper functions
nanu-c Jan 28, 2023
2e4a574
fix message ownership
nanu-c Jan 28, 2023
960b7df
add support for sending messages to groups
nanu-c Jan 28, 2023
7c71514
update message list on receiving/sending
nanu-c Jan 29, 2023
2da6abc
Don't add uuid to sent message
nanu-c Jan 29, 2023
4538a78
break on receiving channel has ended
nanu-c Jan 29, 2023
149a495
add dbus to ut feature
nanu-c Jan 29, 2023
9dfd929
Add notifications for ubuntu touch
nanu-c Jan 31, 2023
4175242
improve message display
nanu-c Jan 31, 2023
7b0564a
Add regsister button to axolotl web
nanu-c Feb 4, 2023
41ea491
add a handler mutex to load store once
nanu-c Feb 4, 2023
1c2dffa
initate db in main
nanu-c Feb 4, 2023
1e43aa7
Add the feature to send an attachment
nalysius Feb 5, 2023
734584a
Make it compile
jonnius Feb 5, 2023
5805983
Simplify main function
jonnius Feb 5, 2023
fbf84e6
Replace futures Mutex by tokio Mutex
jonnius Feb 5, 2023
031ccdd
Merge pull request #993 from jonnius/axolotl_presage_jonny
nanu-c Feb 6, 2023
08f8009
remove crayfish and zkgroup from ci
nanu-c Feb 8, 2023
a981de0
set correct patth for yarn
nanu-c Feb 8, 2023
deb7f2b
show sender names in groups
nanu-c Feb 8, 2023
8993f7e
fix building for feature ut
nanu-c Feb 8, 2023
2159e30
use tokio mutex instead of future mutex
nanu-c Feb 9, 2023
7fbac2a
WIP: get pin
nanu-c Feb 12, 2023
ce106a4
finish integration of upstream pressage
nanu-c Feb 13, 2023
a5dc9f8
use npm instead of yarn in ci
nanu-c Feb 14, 2023
3fce241
fix building with clickable
nanu-c Feb 14, 2023
870ba40
use needs
nanu-c Feb 14, 2023
c9b6dc3
try to fix ci
nanu-c Feb 14, 2023
d9baad3
Add dump db example
nanu-c Feb 17, 2023
1b28b3a
fix auto updating chats
nanu-c Feb 17, 2023
c97df81
Save outgoing attachments on the disk
nalysius Feb 19, 2023
592a7e6
Transmit the message attachment to the front-end
nalysius Feb 19, 2023
46cee4c
Transmits all the attachments to the front-end
nalysius Feb 20, 2023
1a7972d
Display the messages with attachments
nalysius Feb 20, 2023
1147058
Add a field is_sent to an AxolotlMessage
nalysius Feb 21, 2023
6f2aa7e
Display the attachments in the messages list
nalysius Feb 21, 2023
312345b
register via phone number
nanu-c Feb 22, 2023
8775b61
register via phone number #2
nanu-c Feb 22, 2023
3dd78b6
Merge branch 'axolotl_presage' into pr/nalysius/1002
nanu-c Feb 22, 2023
687dd9b
Make the command line argument mode an enum
jonnius Feb 6, 2023
0e2ee2b
Merge pull request #996 from jonnius/axolotl_presage_jonny
nanu-c Mar 13, 2023
ff9e701
fix building with new presage
nanu-c Apr 3, 2023
8433f72
fix register/unregiter workflows
nanu-c Apr 9, 2023
6e6c319
use upstream presage
nanu-c Apr 23, 2023
37515cd
use metathread data
nanu-c May 9, 2023
dd25271
wip: add thread ttle sync
nanu-c May 14, 2023
ef7798d
streamline linking as secondary device
nanu-c May 18, 2023
7f25212
Merge branch 'axolotl_presage' into pr/nalysius/1002
nanu-c May 18, 2023
f33333a
fix sending attachments
nanu-c May 18, 2023
ae8b456
Merge pull request #1002 from nalysius/view-attachment
nanu-c May 18, 2023
29cf7cb
fix registration vie phone number and show registration errors
nanu-c May 20, 2023
a9efa27
enable receiving attachmens
nanu-c Jun 10, 2023
3db8e9c
update presage
nanu-c Jun 10, 2023
09b51bd
sending attachments via ubuntu touch
nanu-c Jun 11, 2023
e12ad72
chat list cosmetics
nanu-c Jun 11, 2023
9372c82
accept attachments with cdnkey, too
nanu-c Jun 11, 2023
5e63c57
update presage for updateing contacts
nanu-c Jun 12, 2023
bf2a7a6
use 3 column masonry for many attachments
nanu-c Jun 12, 2023
25729f2
update profiles when contact exists but name is empty
nanu-c Jun 13, 2023
0b2a33c
update dependencies
nanu-c Jun 13, 2023
df41560
better error handling in registration
nanu-c Jun 13, 2023
3f6007b
Merge branch 'main' into axolotl_presage
nanu-c Jun 13, 2023
a3c18b4
fix axolotl-web tests
nanu-c Jun 13, 2023
45e7abe
fix axolotl-web dependencies
nanu-c Jun 13, 2023
eee5f53
checkout code in ci
nanu-c Jun 13, 2023
9a4988a
add gtk3 to ci
nanu-c Jun 13, 2023
47a7038
ci: add libsoup-3.0-dev
nanu-c Jun 14, 2023
e23ab01
add more tauri dependencies
nanu-c Jun 14, 2023
0ba8667
ci add more dependencies
nanu-c Jun 14, 2023
d1dcf91
ci: use axolotl web build for axolotl
nanu-c Jun 14, 2023
847ffcd
ci: fix a-web path
nanu-c Jun 14, 2023
b5fbea1
ci:next try
nanu-c Jun 14, 2023
e7671cf
ci: next try
nanu-c Jun 14, 2023
1e4c0e9
ci: next try
nanu-c Jun 14, 2023
37f091a
fix artefacts
nanu-c Jun 14, 2023
45577b4
ci: adjust artefacts path
nanu-c Jun 14, 2023
9d32e92
ci: next try
nanu-c Jun 14, 2023
69557c3
ci: next try
nanu-c Jun 14, 2023
5c113a9
ci: next try
nanu-c Jun 14, 2023
d5f71d0
ci: Adjust clickable container
nanu-c Jun 14, 2023
5cd7521
ci: enable debian build
nanu-c Jun 15, 2023
3289990
ci: debian set pkg config sysroot dir
nanu-c Jun 15, 2023
02440f3
ci: debian add tauri dependencies
nanu-c Jun 15, 2023
0172734
ci: debian use prebuild axolotl web for tauri packaging
nanu-c Jun 15, 2023
148e8d5
ci: debian add linker env
nanu-c Jun 16, 2023
93bd11b
ci: debian add arm64 dpendencies
nanu-c Jun 16, 2023
da0144a
ci: debian set correct arichtecture
nanu-c Jun 16, 2023
c74a87e
ci: run in debian docker
nanu-c Jun 16, 2023
4c25db8
ci: debian disable
nanu-c Jun 16, 2023
caeb8a8
ci: debian don't use --add-architecture
nanu-c Jun 16, 2023
03dbf2b
ci: debian use self hosted runner
nanu-c Jun 16, 2023
4cb7315
ci: debian remove arch depending build steps
nanu-c Jun 16, 2023
400775f
ci: debian upload correct file to artifacts
nanu-c Jun 16, 2023
1e7f2ae
ci: debian don't use cache
nanu-c Jun 16, 2023
134e484
Fix builds
darkdragon-001 Jun 16, 2023
2b918b6
Merge branch 'axolotl_presage' into fix-linker
nanu-c Jun 18, 2023
7b00e8e
Merge pull request #1051 from darkdragon-001/fix-linker
nanu-c Jun 18, 2023
b6e1332
ci: appimage fix artefacts path
nanu-c Jun 18, 2023
ce49b37
ci: appimage fix upload path for amd64 build
nanu-c Jun 18, 2023
c18f1d5
ci: debian use correct path for build artefacts
nanu-c Jun 18, 2023
b2cb622
ci: appimage fix path
nanu-c Jun 18, 2023
a5f8c62
Use matrix to simplify packaging workflow
darkdragon-001 Jun 16, 2023
3586277
Apply workaround
darkdragon-001 Jun 18, 2023
55e3b43
Merge pull request #1053 from darkdragon-001/improve-packaging
nanu-c Jun 18, 2023
641ffdc
run linter
nanu-c Jun 20, 2023
9a734af
ci: debian try tauri deb builder
nanu-c Jun 20, 2023
081e21b
install tauri cli
nanu-c Jun 20, 2023
8688807
ci: Add more builds
nanu-c Jun 20, 2023
fcb0421
ci: install vite
nanu-c Jun 20, 2023
046ddc1
ci: add packages to build artifacts
nanu-c Jun 20, 2023
a0ff52a
ci: upload arm64 deb to artifacts
nanu-c Jun 20, 2023
06311ed
cI: only upload packaged app
nanu-c Jun 20, 2023
35dad57
Update axolotl_presage for Debian packaging
nuehm-arno Jun 22, 2023
2cfddf5
Update axolotl.desktop
nuehm-arno Jun 22, 2023
33b1dd5
Delete axolotl.sh
nuehm-arno Jun 22, 2023
9644fc9
Delete postinst
nuehm-arno Jun 22, 2023
27089a4
Update control
nuehm-arno Jun 22, 2023
3ca3147
Update axolotl.install
nuehm-arno Jun 22, 2023
80687d1
Update package.yaml
nuehm-arno Jun 22, 2023
15d3f73
Update Makefile
nuehm-arno Jun 22, 2023
7887d7f
Update package.yaml
nuehm-arno Jun 22, 2023
9bc1877
Update Cargo.toml
nuehm-arno Jun 22, 2023
0a6170d
Update Cargo.toml
nuehm-arno Jun 30, 2023
b4638a3
Update build.yaml
nuehm-arno Jun 30, 2023
a6905c1
Update Makefile
nuehm-arno Jul 1, 2023
80477e6
Update Cargo.toml
nuehm-arno Jul 1, 2023
8fb82cd
Update package.yaml
nuehm-arno Jul 1, 2023
d4daab3
Merge pull request #1061 from nanu-c/axolotl_presage_deb_packaging_fix
nanu-c Jul 1, 2023
7f50fd7
Move registration into own function
jonnius Jul 18, 2023
95560e0
Move registration message handling into own function
jonnius Jul 18, 2023
eb1c017
Replace if-else-pattern message dispatch by match-pattern
jonnius Jul 22, 2023
3a750a3
Apply auto-fixes from 'cargo clippy --fix -p -axolotl'
jonnius Jul 22, 2023
c5836c5
Reduce number of unwrap calls and fix some linter remarks
jonnius Jul 22, 2023
d4a8cb4
move handling of complex registration messages into their own functions
jonnius Jul 22, 2023
fbf80e6
Merge pull request #1072 from jonnius/separate-functions
nanu-c Jul 27, 2023
539cf88
Fix iterceptor in ut
nanu-c Aug 11, 2023
ff93c93
fix registration
nanu-c Aug 16, 2023
2774548
Relieve backend from the need of being Send
jonnius Aug 18, 2023
4dcc1da
Simplify some code where Send is not needed anymore
jonnius Aug 18, 2023
2e6726f
Avoid spawning new runtimes in ThreadManager
jonnius Aug 18, 2023
729c328
Fix linter remarks
jonnius Aug 18, 2023
b592a24
Update rust version in clickable build
jonnius Aug 18, 2023
0020149
Encapsulate the tokio LocalSet
jonnius Aug 19, 2023
3aadc5a
allow tauri to run on a side thread
nanu-c Aug 20, 2023
33d124c
spawn the manager locally
nanu-c Aug 20, 2023
e47aea7
restructure registration and add debug code
nanu-c Aug 20, 2023
eb41c20
Store axolotl-web dist in its respective install dir
jonnius Jul 18, 2023
f87049b
Replace deprecated nodejs installation script by recommended way
jonnius Sep 18, 2023
1de6683
Merge pull request #1095 from jonnius/f.update-nodejs-installation
nanu-c Sep 19, 2023
b10e614
Merge pull request #1084 from jonnius/non-send-backend
nanu-c Sep 20, 2023
5cde068
update presage
nanu-c Sep 20, 2023
2e740b1
Attempt to fix sending verification code
jonnius Aug 18, 2023
d382979
Add feature to use staging servers
jonnius Aug 20, 2023
4e1d91b
WIP restructuring
jonnius Aug 20, 2023
7a699a7
Finish registration
jonnius Aug 21, 2023
c8b53c1
Small beautification
jonnius Aug 21, 2023
37afa5a
Recognize existing registration on start
jonnius Aug 21, 2023
10b5549
Remove registration type for now as it is unused
jonnius Sep 24, 2023
a4b42ca
Merge branch 'axolotl_presage' into small-lint
nanu-c Sep 24, 2023
16e2dab
Remove unnecessary env vars and keep source dir clean
jonnius Sep 25, 2023
34625c1
Merge pull request #1085 from jonnius/registration-fix
nanu-c Oct 8, 2023
4066649
Make axolotl more reliable
nanu-c Oct 13, 2023
38d6890
Merge pull request #1071 from jonnius/small-lint
nanu-c Oct 21, 2023
4dc710a
update presage and diasable flatpack
nanu-c Oct 23, 2023
8057f1c
ci: remove appimage from release
nanu-c Oct 24, 2023
05bc67e
axolotl-web: clanup and update dependencies
nanu-c Oct 24, 2023
362e127
ci: build axolotl web only once
nanu-c Oct 24, 2023
819efbd
ci: incosistend axolotl web path
nanu-c Oct 24, 2023
ea7ca3e
Ci: Fix relase upload (#1112)
nanu-c Oct 29, 2023
ed15b06
change namespace to axolotl
nanu-c Nov 10, 2023
8606707
rename namespace part2
nanu-c Nov 10, 2023
1afe7fd
Update presage +tauri
nanu-c Nov 10, 2023
9fad965
Add clippy and rustfmt to ci and fix linter errors
nanu-c Nov 10, 2023
d98e560
fix clickable build
nanu-c Nov 11, 2023
460e69f
linter fix
nanu-c Nov 11, 2023
0f03829
update clickable version
nanu-c Nov 11, 2023
fe3459a
ci: set npm as dependency in clickable
nanu-c Nov 11, 2023
d30193b
ci: clickable don't build axolotl-web
nanu-c Nov 11, 2023
7177346
Avoid npm nodejs version conflict in Clickable images
jonnius Nov 12, 2023
ec707f7
Put axolotlweb where Clickable expects it
jonnius Nov 12, 2023
4c90349
Add workaround for Clickable bug
jonnius Nov 16, 2023
31eac94
Merge pull request #1119 from jonnius/node-local
nanu-c Nov 18, 2023
bcae9a7
fix: threadmetadata panics and update presage to fix register
nanu-c Dec 27, 2023
e21309c
fix: axolotl-web white screen and disable primary registration
nanu-c Jan 21, 2024
224ba69
Ignore VSCode Devcontainer config folder
darkdragon-001 Jan 21, 2024
1a1625c
Fix Rust formatting issues
darkdragon-001 Jan 21, 2024
1d72e05
Enable Dependabot for Cargo
darkdragon-001 Jan 21, 2024
3f7e922
Fix duplicate version in Cargo.lock
darkdragon-001 Jan 21, 2024
253a0ca
Fix package-lock.json
darkdragon-001 Jan 21, 2024
fe1fe67
Remove obsolete references to golang files and Qt version
darkdragon-001 Jan 21, 2024
5daf132
Refactor Flatpak build
darkdragon-001 Jan 21, 2024
48dc80a
Merge pull request #1146 from darkdragon-001/flatpak
nanu-c Jan 23, 2024
b56acf6
update axolotl web dependencies
nanu-c Jan 27, 2024
33ab28f
update dependencies and use libsignal-service via presage
nanu-c Jan 27, 2024
cd64c2e
fix: linter errors
nanu-c Jan 27, 2024
666b94b
fix: clippy errros
nanu-c Jan 27, 2024
2807a70
fix: ci: add protoc to clippy check
nanu-c Jan 27, 2024
8300e28
fix: Add protoc to more build steps
nanu-c Jan 27, 2024
61360aa
ci: move flatpack build to packaging
nanu-c Jan 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ Please provide the Version as written in `Settings->About Axolotl`
What device or OS are you using?

#### Link to Debug Log
Please provide a link to debug from ~/.cache/upstart/application-click-textsecure.nanuc_textsecure*.log
Please provide a link to debug from ~/.cache/upstart/application-click-axolotl.nanuc_axolotl*.log
Be careful it contains sensible data
8 changes: 4 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@

version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "npm"
directory: "/axolotl-web"
schedule:
Expand All @@ -15,3 +11,7 @@ updates:
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
246 changes: 145 additions & 101 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,9 @@ on:
workflow_call:

env:
GO_VERSION: 1.16
NODE_VERSION: "18.x"

jobs:
build-axolotl:
name: Build axolotl
runs-on: ubuntu-latest

steps:
- name: Setup Go 1.16
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}

- name: Check out code
uses: actions/checkout@v3

- name: Download dependencies
run: go mod download

- name: Run tests
run: make check-axolotl

- name: Build
run: make build-axolotl

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: axolotl
path: axolotl
retention-days: 1

build-axolotl-web:
name: Build axolotl-web
runs-on: ubuntu-latest
Expand Down Expand Up @@ -72,126 +42,200 @@ jobs:
path: axolotl-web/dist/
retention-days: 1

build-crayfish:
name: Build crayfish
rustfmt:
name: rustfmt
runs-on: ubuntu-latest

steps:
- name: Setup rust
- name: Checkout repository
uses: actions/checkout@v2

- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt

- name: Check out code
uses: actions/checkout@v3
with:
submodules: 'true'

- name: Build
- name: Check code format
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path crayfish/Cargo.toml --release

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: crayfish
path: crayfish/target/release/crayfish
retention-days: 1
command: fmt
args: -- --check

build-axolotl-deb-arm64:
name: Build axolotl Debian arm64
clippy:
name: clippy
runs-on: ubuntu-latest

steps:
- name: Set up Go 1.16
uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up cross-compiling environment
run: |
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu
- name: install protoc
run: sudo apt-get install protobuf-compiler

- name: Check out code
uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy

- name: Download dependencies
run: go mod download
- name: Setup CI cache
uses: Swatinem/rust-cache@v2

- name: Build
run: env GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig go build -o build/linux-arm64/axolotl .

- name: Upload build artifacts
uses: actions/upload-artifact@v3
- name: Run clippy lints
uses: actions-rs/cargo@v1
with:
name: linux-arm64
path: build/linux-arm64/axolotl
retention-days: 1
command: clippy

build-axolotl-web-deb-arm64:
name: Build axolotl-web Debian arm64
build-axolotl:
name: Build axolotl
runs-on: ubuntu-latest

needs:
- rustfmt
- build-axolotl-web
- clippy
steps:
- name: Set up Node
- name: Install tauri dependencies
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends cmake libgtk-3-dev libwebkit2gtk-4.1-dev librsvg2-dev libayatana-appindicator3-dev libssl-dev libjavascriptcoregtk-4.1-dev

- name: Install protoc
run: sudo apt-get install protobuf-compiler

- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable

- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}

- name: Rust cache
uses: swatinem/rust-cache@v2

- name: Check out code
uses: actions/checkout@v3

- name: Create folder
run: mkdir --parents $GITHUB_WORKSPACE/build/linux-arm64/axolotl-web
- name: Download axolotl-web build artifacts
uses: actions/download-artifact@v3
id: download
with:
name: axolotl-web
path: build-artifacts

- name: Download dependencies
run: npm --prefix ./axolotl-web --target_arch=arm64 ci --loglevel verbose
- name: Copy axolotl-web build artifacts
run: |
mkdir --parents axolotl-web/dist
cp -rf ${{steps.download.outputs.download-path}}/* axolotl-web/dist

- name: Build
run: npm --prefix ./axolotl-web --target_arch=arm64 run build

- name: Copy build files
run: |
cp --recursive $GITHUB_WORKSPACE/axolotl-web/dist $GITHUB_WORKSPACE/build/linux-arm64/axolotl-web/
cp --recursive $GITHUB_WORKSPACE/guis $GITHUB_WORKSPACE/build/linux-arm64/
cargo build --release --features tauri

- name: Install tauri-cli
run: cargo install tauri-cli

- name: Install vite
run: npm install -g vite

- name: Download dependencies
run: npm --prefix ./axolotl-web ci --loglevel verbose

- name: Build deb package
run: cargo tauri build -b deb --features tauri

- name: Build appimage package
run: cargo tauri build -b appimage --features tauri

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: linux-arm64
path: build/linux-arm64/
name: build-axolotl-linux-amd64
path: target/release/axolotl
retention-days: 1
- name: Upload deb package
uses: actions/upload-artifact@v3
with:
name: build-axolotl-linux-amd64-deb
path: target/release/bundle/deb/*.deb
retention-days: 1
- name: Upload appimage package
uses: actions/upload-artifact@v3
with:
name: build-axolotl-linux-amd64-appimage
path: target/release/bundle/appimage/*.AppImage
retention-days: 1

build-crayfish-deb-arm64:
name: Build crayfish Debian arm64
build-axolotl-arm64:
name: Build axolotl arm64
runs-on: ubuntu-latest

needs:
- rustfmt
- build-axolotl-web
- clippy
steps:
- name: Install linker
- name: Install tools
run: |
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu
sudo apt-get update && sudo apt-get install -y ca-certificates curl

- name: Configure Rust & Cross
- name: Install tauri arm64 dependencies
run: |
rustup update
rustup target add aarch64-unknown-linux-gnu
cargo install cross
sudo dpkg --add-architecture arm64
sudo sed -i '/^deb \[/! s/^deb /deb [arch=amd64] /' /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy main multiverse universe" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy-security main multiverse universe" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy-backports main multiverse universe" | sudo tee -a /etc/apt/sources.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates main multiverse universe" | sudo tee -a /etc/apt/sources.list

sudo apt-get update && sudo apt-get install -y --no-install-recommends cmake libgtk-3-dev:arm64 libwebkit2gtk-4.1-dev:arm64 librsvg2-dev:arm64 libayatana-appindicator3-dev:arm64 libssl-dev:arm64 libjavascriptcoregtk-4.1-dev:arm64

- name: Install protoc
run: sudo apt-get install protobuf-compiler

- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: aarch64-unknown-linux-gnu

- name: Rust cache
uses: swatinem/rust-cache@v2

- name: Setup C compiler, linker and pkgconfig
run: |
sudo apt-get install -y g++ g++-aarch64-linux-gnu

echo "HOST_CC=gcc" >> $GITHUB_ENV
echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV
echo "PKG_CONFIG_SYSROOT_DIR=/" >> $GITHUB_ENV

- name: Check out code
uses: actions/checkout@v3

- name: Download build-axolotl-web build artifacts
uses: actions/download-artifact@v3
id: download-axolotl-web
with:
submodules: 'true'
name: axolotl-web
path: build-artifacts

- name: Copy axolotl-web build artifacts
run: |
mkdir --parents axolotl-web/dist
cp -rf ${{steps.download-axolotl-web.outputs.download-path}}/* axolotl-web/dist

- name: Build
run: cd crayfish && cross build --release --target aarch64-unknown-linux-gnu
run: cargo build --release --target aarch64-unknown-linux-gnu --features tauri

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: crayfish-arm64
path: crayfish/target/aarch64-unknown-linux-gnu/release/crayfish
retention-days: 1
name: build-axolotl-linux-arm64
path: target/aarch64-unknown-linux-gnu/release/axolotl
retention-days: 1
Loading
Loading