1- name : Deploy documentation
2-
3- on :
4- # Trigger the workflow every time you push to the `main` branch
5- # Using a different branch name? Replace `main` with your branch’s name
6- push :
7- # Allows you to run this workflow manually from the Actions tab on GitHub.
8- workflow_dispatch :
9-
10- jobs :
11- build-docs :
12- runs-on : ubuntu-latest
13- defaults :
14- run :
15- working-directory : docs
16- steps :
17- - uses : actions/checkout@v6
18- - name : Install pnpm
19- uses : pnpm/action-setup@v6
20- with :
21- package_json_file : docs/package.json
22- - name : Use Node.js
23- uses : actions/setup-node@v6
24- with :
25- node-version : 24
26- cache : " pnpm"
27- cache-dependency-path : docs/pnpm-lock.yaml
28- - name : Install dependencies
29- run : pnpm install
30- - name : Build
31- run : pnpm build
32- - name : Deploy to SFTP
33- if : github.ref == 'refs/heads/develop'
34- env :
35- SFTP_HOST : ${{ secrets.SFTP_HOST }}
36- SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
37- SFTP_KEY : ${{ secrets.SFTP_KEY }}
38- SFTP_KNOWN_HOSTS : ${{ secrets.SFTP_KNOWN_HOSTS }}
39- run : |
40- echo "$SFTP_KEY" > sftp_key
41- chmod 600 sftp_key
42- echo "$SFTP_KNOWN_HOSTS" > known_hosts
43- chmod 600 known_hosts
44- rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" dist/ $SFTP_USERNAME@$SFTP_HOST:/var/www/www.setonix
45- build-doc-api :
46- runs-on : ubuntu-24.04
47- defaults :
48- run :
49- working-directory : server
50- steps :
51- - name : ⬆️ Checkout
52- uses : actions/checkout@v6
53- - uses : subosito/flutter-action@v2.23.0
54- with :
55- flutter-version-file : app/pubspec.yaml
56- cache : true
57- - name : Install dependencies
58- run : flutter pub get
59- - name : Generate documentation
60- run : dart doc
61- - name : Deploy API docs via SFTP
62- if : github.ref == 'refs/heads/develop'
63- env :
64- SFTP_HOST : ${{ secrets.SFTP_HOST }}
65- SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
66- SFTP_KEY : ${{ secrets.SFTP_KEY }}
67- SFTP_KNOWN_HOSTS : ${{secrets.SFTP_KNOWN_HOSTS}}
68- run : |
69- echo "$SFTP_KEY" > sftp_key
70- chmod 600 sftp_key
71- echo "$SFTP_KNOWN_HOSTS" > known_hosts
72- chmod 600 known_hosts
73- rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" doc/api/ $SFTP_USERNAME@$SFTP_HOST:/var/www/api.setonix
74- build-web :
75- runs-on : ubuntu-24.04
76- defaults :
77- run :
78- working-directory : app
79- steps :
80- - name : ⬆️ Checkout
81- uses : actions/checkout@v6
82- - uses : subosito/flutter-action@v2.23.0
83- with :
84- flutter-version-file : app/pubspec.yaml
85- cache : true
86- - name : Install dependencies
87- run : flutter pub get
1+ name : Deploy documentation
2+
3+ on :
4+ # Trigger the workflow every time you push to the `main` branch
5+ # Using a different branch name? Replace `main` with your branch’s name
6+ push :
7+ # Allows you to run this workflow manually from the Actions tab on GitHub.
8+ workflow_dispatch :
9+
10+ jobs :
11+ build-docs :
12+ runs-on : ubuntu-latest
13+ defaults :
14+ run :
15+ working-directory : docs
16+ steps :
17+ - uses : actions/checkout@v6
18+ - name : Install pnpm
19+ uses : pnpm/action-setup@v6
20+ with :
21+ package_json_file : docs/package.json
22+ - name : Use Node.js
23+ uses : actions/setup-node@v6
24+ with :
25+ node-version : 24
26+ cache : " pnpm"
27+ cache-dependency-path : docs/pnpm-lock.yaml
28+ - name : Install dependencies
29+ run : pnpm install
30+ - name : Build
31+ run : pnpm build
32+ - name : Deploy to SFTP
33+ if : github.ref == 'refs/heads/develop'
34+ env :
35+ SFTP_HOST : ${{ secrets.SFTP_HOST }}
36+ SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
37+ SFTP_KEY : ${{ secrets.SFTP_KEY }}
38+ SFTP_KNOWN_HOSTS : ${{ secrets.SFTP_KNOWN_HOSTS }}
39+ run : |
40+ echo "$SFTP_KEY" > sftp_key
41+ chmod 600 sftp_key
42+ echo "$SFTP_KNOWN_HOSTS" > known_hosts
43+ chmod 600 known_hosts
44+ rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" dist/ $SFTP_USERNAME@$SFTP_HOST:/var/www/www.setonix
45+ build-doc-api :
46+ runs-on : ubuntu-24.04
47+ defaults :
48+ run :
49+ working-directory : server
50+ steps :
51+ - name : ⬆️ Checkout
52+ uses : actions/checkout@v6
53+ - uses : subosito/flutter-action@v2.23.0
54+ with :
55+ flutter-version-file : app/pubspec.yaml
56+ cache : true
57+ - name : Install dependencies
58+ run : flutter pub get
59+ - name : Generate documentation
60+ run : dart doc
61+ - name : Deploy API docs via SFTP
62+ if : github.ref == 'refs/heads/develop'
63+ env :
64+ SFTP_HOST : ${{ secrets.SFTP_HOST }}
65+ SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
66+ SFTP_KEY : ${{ secrets.SFTP_KEY }}
67+ SFTP_KNOWN_HOSTS : ${{secrets.SFTP_KNOWN_HOSTS}}
68+ run : |
69+ echo "$SFTP_KEY" > sftp_key
70+ chmod 600 sftp_key
71+ echo "$SFTP_KNOWN_HOSTS" > known_hosts
72+ chmod 600 known_hosts
73+ rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" doc/api/ $SFTP_USERNAME@$SFTP_HOST:/var/www/api.setonix
74+ build-web :
75+ runs-on : ubuntu-24.04
76+ defaults :
77+ run :
78+ working-directory : app
79+ steps :
80+ - name : ⬆️ Checkout
81+ uses : actions/checkout@v6
82+ - uses : subosito/flutter-action@v2.23.0
83+ with :
84+ flutter-version-file : app/pubspec.yaml
85+ cache : true
86+ - name : Install dependencies
87+ run : flutter pub get
8888 - name : Generate code
8989 run : |
9090 cd ../tools
9191 dart pub get
9292 cd ..
9393 dart run tools/generate.dart
94+ - name : Install web plugin toolchain
95+ run : |
96+ sudo apt-get update
97+ sudo apt-get install -y clang
98+ rustup toolchain install nightly
99+ rustup +nightly component add rust-src
100+ rustup +nightly target add wasm32-unknown-unknown
101+ cargo install wasm-pack --locked
94102 - name : Set flavor
95103 if : github.ref != 'refs/heads/main'
96104 run : |
97105 echo "SETONIX_FLAVOR=nightly" >> $GITHUB_ENV
98106 echo "WEB_DIR=preview" >> $GITHUB_ENV
99- - name : Set flavor
100- if : github.ref == 'refs/heads/main'
101- run : |
107+ - name : Set flavor
108+ if : github.ref == 'refs/heads/main'
109+ run : |
102110 echo "SETONIX_FLAVOR=stable" >> $GITHUB_ENV
103111 echo "WEB_DIR=web" >> $GITHUB_ENV
112+ - name : Build plugin WASM bundle
113+ run : dart run flutter_rust_bridge build-web --rust-root ../plugin/rust --output web --release
104114 - name : Build
105115 run : flutter build web --wasm --release --no-web-resources-cdn --dart-define=flavor=$SETONIX_FLAVOR
106- - name : Deploy Flutter web via SFTP
107- if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main'
108- env :
109- SFTP_HOST : ${{ secrets.SFTP_HOST }}
110- SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
111- SFTP_KEY : ${{ secrets.SFTP_KEY }}
112- SFTP_KNOWN_HOSTS : ${{ secrets.SFTP_KNOWN_HOSTS }}
113- run : |
114- echo "$SFTP_KEY" > sftp_key
115- chmod 600 sftp_key
116- echo "$SFTP_KNOWN_HOSTS" > known_hosts
117- chmod 600 known_hosts
118- rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" build/web/ $SFTP_USERNAME@$SFTP_HOST:/var/www/$WEB_DIR.setonix
116+ - name : Deploy Flutter web via SFTP
117+ if : github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main'
118+ env :
119+ SFTP_HOST : ${{ secrets.SFTP_HOST }}
120+ SFTP_USERNAME : ${{ secrets.SFTP_USERNAME }}
121+ SFTP_KEY : ${{ secrets.SFTP_KEY }}
122+ SFTP_KNOWN_HOSTS : ${{ secrets.SFTP_KNOWN_HOSTS }}
123+ run : |
124+ echo "$SFTP_KEY" > sftp_key
125+ chmod 600 sftp_key
126+ echo "$SFTP_KNOWN_HOSTS" > known_hosts
127+ chmod 600 known_hosts
128+ rsync -avz --delete -e "ssh -i sftp_key -o UserKnownHostsFile=known_hosts" build/web/ $SFTP_USERNAME@$SFTP_HOST:/var/www/$WEB_DIR.setonix
0 commit comments