Merge pull request #357 from padloc/feature/ci-build-tauri

CI: Build Tauri
This commit is contained in:
Bruno Bernardino 2021-12-26 12:14:29 +00:00 committed by GitHub
commit fce1f9da30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 20850 additions and 20752 deletions

View File

@ -26,6 +26,7 @@ on:
- "packages/core/**"
- "packages/cordova/**"
- "packages/locale/**"
- "assets/**"
jobs:
android:
@ -56,8 +57,11 @@ jobs:
base64 -d android-upload-key.keystore.txt > android-upload-key.keystore
rm -f android-upload-key.keystore.txt
- name: Build (Android)
run: |
PL_SERVER_URL='${{ secrets.PL_SERVER_URL }}' PL_ANDROID_STORE_PASSWORD='${{ secrets.PL_ANDROID_STORE_PASSWORD }}' PL_ANDROID_KEYSTORE_ALIAS='${{ secrets.PL_ANDROID_KEYSTORE_ALIAS }}' PL_ANDROID_STORE_PASSWORD='${{ secrets.PL_ANDROID_STORE_PASSWORD }}' npm run cordova:build:android:signed
env:
PL_SERVER_URL: ${{ secrets.PL_SERVER_URL }}
PL_ANDROID_STORE_PASSWORD: ${{ secrets.PL_ANDROID_STORE_PASSWORD }}
PL_ANDROID_KEYSTORE_ALIAS: ${{ secrets.PL_ANDROID_KEYSTORE_ALIAS }}
run: npm run cordova:build:android:signed
- name: Archive Signed APK (Android)
uses: actions/upload-artifact@v2
with:

View File

@ -1,5 +1,23 @@
name: "Build And Publish Desktop Tauri Apps"
on: [workflow_dispatch]
name: Build And Publish Desktop Tauri Apps
on:
workflow_dispatch:
inputs:
environment:
type: environment
push:
branches:
- "v4"
- "master"
- "feature/**"
- "fix/**"
paths:
- "packages/app/**"
- "packages/core/**"
- "packages/tauri/**"
- "packages/locale/**"
- "assets/**"
jobs:
build_and_publish:
@ -13,32 +31,61 @@ jobs:
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: setup node
uses: actions/setup-node@v1
- uses: actions/setup-node@v2
with:
node-version: 12
- name: install Rust stable
node-version-file: ".nvmrc"
- name: Install Rust stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: install tauri bundler
- name: Install tauri bundler
run: cargo install tauri-bundler --force
- name: install webkit2gtk (ubuntu only)
- name: Install webkit2gtk (ubuntu only)
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y webkit2gtk-4.0
- name: install app dependencies and bootstrap packages
run: npm install
- uses: tauri-apps/tauri-action@v0
- name: Install dependencies
run: |
npm i -g npm@8.2.0
npm ci
- name: Build
run: |
npm run tauri:build
env:
PL_SERVER_URL: https://api.padloc.app
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PL_SERVER_URL: ${{ secrets.PL_SERVER_URL }}
- name: Archive AppImage
uses: actions/upload-artifact@v2
if: matrix.platform == 'ubuntu-latest'
with:
tagName: tauri-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version
releaseName: "Padloc (Tauri Edition) v__VERSION__"
body: "WARNING: The builds in this release are experimental. Use at your own risk!"
draft: true
prerelease: true
projectPath: packages/tauri
npmScript: build
name: padloc-linux-${{ github.sha }}-unsigned.AppImage
path: packages/tauri/src-tauri/target/release/bundle/appimage/*.AppImage
if-no-files-found: error
- name: Archive deb
uses: actions/upload-artifact@v2
if: matrix.platform == 'ubuntu-latest'
with:
name: padloc-linux-${{ github.sha }}-unsigned.deb
path: packages/tauri/src-tauri/target/release/bundle/deb/*.deb
if-no-files-found: error
- name: Archive dmg
uses: actions/upload-artifact@v2
if: matrix.platform == 'macos-latest'
with:
name: padloc-macos-${{ github.sha }}-unsigned.dmg
path: packages/tauri/src-tauri/target/release/bundle/dmg/*.dmg
if-no-files-found: error
- name: Archive app
uses: actions/upload-artifact@v2
if: matrix.platform == 'macos-latest'
with:
name: padloc-macos-${{ github.sha }}-unsigned.app
path: packages/tauri/src-tauri/target/release/bundle/macos/*.app
if-no-files-found: error
- name: Archive msi
uses: actions/upload-artifact@v2
if: matrix.platform == 'windows-latest'
with:
name: padloc-windows-${{ github.sha }}-unsigned.msi
path: packages/tauri/src-tauri/target/release/bundle/msi/*.msi
if-no-files-found: error

View File

@ -17,6 +17,7 @@ on:
- "packages/core/**"
- "packages/extension/**"
- "packages/locale/**"
- "assets/**"
jobs:
archive:
@ -32,7 +33,9 @@ jobs:
npm i -g npm@8.2.0 web-ext@6.6.0
npm ci
- name: Build
run: PL_SERVER_URL=${{ secrets.PL_SERVER_URL }} npm run web-extension:build
env:
PL_SERVER_URL: ${{ secrets.PL_SERVER_URL }}
run: npm run web-extension:build
- name: Sign for Firefox
run: cd packages/extension/dist && web-ext sign --channel=unlisted --api-key=${{ secrets.PL_WEB_EXTENSION_FIREFOX_API_KEY }} --api-secret=${{ secrets.PL_WEB_EXTENSION_FIREFOX_API_SECRET }}
- name: Archive Signed Web Extension (Firefox)

View File

@ -6,4 +6,6 @@ packages/cordova/www/**/*
packages/electron/app/**/*
packages/electron/build/**/*
packages/electron/dist/**/*
packages/tauri/dist/**/*
packages/tauri/src-tauri/target/**/*
package-lock.json

View File

@ -37,6 +37,7 @@
"start": "npm run pwa:build && lerna run --scope '@padloc/{server,pwa}' --parallel start",
"dev": "lerna run --parallel --scope '@padloc/{server,pwa}' --parallel dev",
"tauri:dev": "lerna run --parallel --scope '@padloc/{server,tauri}' --parallel dev",
"tauri:build": "lerna run build --scope @padloc/tauri",
"repl": "cd packages/server && npm run repl && cd ../..",
"test": "lerna run test",
"locale:extract": "lerna run extract --scope '@padloc/locale'",

File diff suppressed because it is too large Load Diff

View File

@ -15,10 +15,11 @@
"css-loader": "5.2.6",
"file-loader": "6.2.0",
"html-webpack-plugin": "5.3.1",
"raw-loader": "4.0.2",
"style-loader": "2.0.0",
"ts-loader": "9.2.2",
"ts-node": "10.0.0",
"typescript": "4.3.2",
"typescript": "4.4.3",
"webpack": "5.38.1",
"webpack-cli": "4.7.0",
"webpack-dev-server": "3.11.2",

View File

@ -1,14 +1,16 @@
const path = require("path");
const { resolve } = require("path");
const { EnvironmentPlugin } = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const { version } = require("./package.json");
const out = process.env.PL_PWA_DIR || path.resolve(__dirname, "dist");
const out = process.env.PL_PWA_DIR || resolve(__dirname, "dist");
const serverUrl = process.env.PL_SERVER_URL || `http://0.0.0.0:${process.env.PL_SERVER_PORT || 3000}`;
const rootDir = resolve(__dirname, "../..");
const assetsDir = resolve(rootDir, process.env.PL_ASSETS_DIR || "assets");
module.exports = {
entry: path.resolve(__dirname, "src/index.ts"),
entry: resolve(__dirname, "src/index.ts"),
output: {
path: out,
filename: "[name].js",
@ -19,7 +21,10 @@ module.exports = {
devtool: "source-map",
stats: "minimal",
resolve: {
extensions: [".ts", ".js"],
extensions: [".ts", ".js", ".css", ".svg", ".png", ".jpg"],
alias: {
assets: assetsDir,
},
},
module: {
rules: [
@ -35,6 +40,10 @@ module.exports = {
test: /\.(woff|woff2|eot|ttf|otf|svg)$/,
use: ["file-loader"],
},
{
test: /\.txt|md$/i,
use: "raw-loader",
},
],
},
plugins: [
@ -50,11 +59,11 @@ module.exports = {
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: "Padloc",
template: path.resolve(__dirname, "src/index.html"),
template: resolve(__dirname, "src/index.html"),
}),
],
devServer: {
contentBase: path.resolve(__dirname, "dist"),
contentBase: resolve(__dirname, "dist"),
historyApiFallback: true,
host: "0.0.0.0",
port: process.env.PL_PWA_PORT || 8080,