mirror of
https://github.com/CringeStudios/element-desktop.git
synced 2025-01-18 15:34:59 +01:00
Simplify element builder workflow (#898)
This commit is contained in:
parent
cb29a10c5e
commit
c7c063f129
9
.github/workflows/build_linux.yaml
vendored
9
.github/workflows/build_linux.yaml
vendored
@ -118,15 +118,6 @@ jobs:
|
|||||||
echo "config-args=--deb-changelog changelog.Debian" >> $GITHUB_OUTPUT
|
echo "config-args=--deb-changelog changelog.Debian" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat "$DIR/control.template" | grep -v "Architecture: " > debcontrol
|
|
||||||
echo "Architecture: $ARCHITECTURE" >> debcontrol
|
|
||||||
VERSION=${INPUT_VERSION:-$(cat package.json | jq -r .version)}
|
|
||||||
echo "Version: $VERSION" >> debcontrol
|
|
||||||
env:
|
|
||||||
DIR: ${{ inputs.config }}
|
|
||||||
INPUT_VERSION: ${{ inputs.version }}
|
|
||||||
ARCHITECTURE: ${{ inputs.arch }}
|
|
||||||
|
|
||||||
- name: Build App
|
- name: Build App
|
||||||
run: |
|
run: |
|
||||||
npx ts-node scripts/generate-builder-config.ts \
|
npx ts-node scripts/generate-builder-config.ts \
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
Package: element-nightly
|
|
||||||
License: Apache-2.0
|
|
||||||
Vendor: support@element.io
|
|
||||||
Architecture: amd64
|
|
||||||
Maintainer: support@element.io
|
|
||||||
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libasound2, libgbm1
|
|
||||||
Recommends: libsqlcipher0, element-io-archive-keyring
|
|
||||||
Section: net
|
|
||||||
Priority: extra
|
|
||||||
Homepage: https://element.io/
|
|
||||||
Description:
|
|
||||||
riot.im A feature-rich client for Matrix.org (nightly unstable build).
|
|
@ -1,9 +0,0 @@
|
|||||||
Package: riot-nightly
|
|
||||||
Version: 2020071502
|
|
||||||
Depends: element-nightly
|
|
||||||
Maintainer: packages@element.io
|
|
||||||
Architecture: all
|
|
||||||
Priority: optional
|
|
||||||
Section: oldlibs
|
|
||||||
Description: transitional package
|
|
||||||
This is a transitional package. It can safely be removed.
|
|
@ -1,14 +0,0 @@
|
|||||||
Package: element-desktop
|
|
||||||
License: Apache-2.0
|
|
||||||
Vendor: support@element.io
|
|
||||||
Architecture: amd64
|
|
||||||
Maintainer: support@element.io
|
|
||||||
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libasound2, libgbm1
|
|
||||||
Recommends: libsqlcipher0, element-io-archive-keyring
|
|
||||||
Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
|
|
||||||
Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
|
|
||||||
Section: net
|
|
||||||
Priority: extra
|
|
||||||
Homepage: https://element.io/
|
|
||||||
Description:
|
|
||||||
A feature-rich client for Matrix.org
|
|
@ -1,9 +0,0 @@
|
|||||||
Package: riot-desktop
|
|
||||||
Version: 1.7.0
|
|
||||||
Depends: element-desktop
|
|
||||||
Maintainer: packages@element.io
|
|
||||||
Architecture: all
|
|
||||||
Priority: optional
|
|
||||||
Section: oldlibs
|
|
||||||
Description: transitional package
|
|
||||||
This is a transitional package. It can safely be removed.
|
|
35
package.json
35
package.json
@ -5,6 +5,7 @@
|
|||||||
"version": "1.11.31",
|
"version": "1.11.31",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "Element",
|
"author": "Element",
|
||||||
|
"homepage": "https://element.io",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/vector-im/element-desktop"
|
"url": "https://github.com/vector-im/element-desktop"
|
||||||
@ -145,17 +146,45 @@
|
|||||||
"deb"
|
"deb"
|
||||||
],
|
],
|
||||||
"category": "Network;InstantMessaging;Chat",
|
"category": "Network;InstantMessaging;Chat",
|
||||||
"maintainer": "support@element.io"
|
"maintainer": "support@element.io",
|
||||||
|
"icon": "build/icons"
|
||||||
|
},
|
||||||
|
"deb": {
|
||||||
|
"packageCategory": "net",
|
||||||
|
"depends": [
|
||||||
|
"libgtk-3-0",
|
||||||
|
"libnotify4",
|
||||||
|
"libnss3",
|
||||||
|
"libxss1",
|
||||||
|
"libxtst6",
|
||||||
|
"xdg-utils",
|
||||||
|
"libatspi2.0-0",
|
||||||
|
"libuuid1",
|
||||||
|
"libsecret-1-0",
|
||||||
|
"libasound2",
|
||||||
|
"libgbm1"
|
||||||
|
],
|
||||||
|
"recommends": [
|
||||||
|
"libsqlcipher0",
|
||||||
|
"element-io-archive-keyring"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"mac": {
|
"mac": {
|
||||||
"category": "public.app-category.social-networking",
|
"category": "public.app-category.social-networking",
|
||||||
"darkModeSupport": true,
|
"darkModeSupport": true,
|
||||||
"gatekeeperAssess": true
|
"hardenedRuntime": true,
|
||||||
|
"gatekeeperAssess": true,
|
||||||
|
"entitlements": "./build/entitlements.mac.plist",
|
||||||
|
"icon": "build/icons/icon.icns"
|
||||||
},
|
},
|
||||||
"win": {
|
"win": {
|
||||||
"target": [
|
"target": [
|
||||||
"squirrel"
|
"squirrel"
|
||||||
]
|
],
|
||||||
|
"signingHashAlgorithms": [
|
||||||
|
"sha256"
|
||||||
|
],
|
||||||
|
"icon": "build/icons/icon.ico"
|
||||||
},
|
},
|
||||||
"directories": {
|
"directories": {
|
||||||
"output": "dist"
|
"output": "dist"
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
* On Linux:
|
* On Linux:
|
||||||
* Replaces spaces in the product name with dashes as spaces in paths can cause issues
|
* Replaces spaces in the product name with dashes as spaces in paths can cause issues
|
||||||
* Passes --deb-custom-control to build.deb.fpm if specified
|
* Passes --deb-custom-control to build.deb.fpm if specified
|
||||||
|
* Removes libsqlcipher0 recommended dependency if env SQLCIPHER_BUNDLED is asserted.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import parseArgs from "minimist";
|
import parseArgs from "minimist";
|
||||||
@ -30,17 +31,9 @@ const argv = parseArgs<{
|
|||||||
"signtool-thumbprint"?: string;
|
"signtool-thumbprint"?: string;
|
||||||
"signtool-subject-name"?: string;
|
"signtool-subject-name"?: string;
|
||||||
"notarytool-team-id"?: string;
|
"notarytool-team-id"?: string;
|
||||||
"deb-custom-control"?: string;
|
|
||||||
"deb-changelog"?: string;
|
"deb-changelog"?: string;
|
||||||
}>(process.argv.slice(2), {
|
}>(process.argv.slice(2), {
|
||||||
string: [
|
string: ["nightly", "deb-changelog", "signtool-thumbprint", "signtool-subject-name", "notarytool-team-id"],
|
||||||
"nightly",
|
|
||||||
"deb-custom-control",
|
|
||||||
"deb-changelog",
|
|
||||||
"signtool-thumbprint",
|
|
||||||
"signtool-subject-name",
|
|
||||||
"notarytool-team-id",
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
type DeepWriteable<T> = { -readonly [P in keyof T]: DeepWriteable<T[P]> };
|
type DeepWriteable<T> = { -readonly [P in keyof T]: DeepWriteable<T[P]> };
|
||||||
@ -50,12 +43,14 @@ interface PackageBuild extends DeepWriteable<Omit<Configuration, "extraMetadata"
|
|||||||
productName?: string;
|
productName?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
version?: string;
|
version?: string;
|
||||||
|
description?: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Package {
|
interface Package {
|
||||||
build: PackageBuild;
|
build: PackageBuild;
|
||||||
productName: string;
|
productName: string;
|
||||||
|
description: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main(): Promise<number | void> {
|
async function main(): Promise<number | void> {
|
||||||
@ -66,6 +61,7 @@ async function main(): Promise<number | void> {
|
|||||||
...pkg.build,
|
...pkg.build,
|
||||||
extraMetadata: {
|
extraMetadata: {
|
||||||
productName: pkg.productName,
|
productName: pkg.productName,
|
||||||
|
description: pkg.description,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -73,6 +69,7 @@ async function main(): Promise<number | void> {
|
|||||||
cfg.appId = NIGHTLY_APP_ID;
|
cfg.appId = NIGHTLY_APP_ID;
|
||||||
cfg.extraMetadata!.productName += " Nightly";
|
cfg.extraMetadata!.productName += " Nightly";
|
||||||
cfg.extraMetadata!.name = NIGHTLY_APP_NAME;
|
cfg.extraMetadata!.name = NIGHTLY_APP_NAME;
|
||||||
|
cfg.extraMetadata!.description += " (nightly unstable build)";
|
||||||
|
|
||||||
let version = argv.nightly;
|
let version = argv.nightly;
|
||||||
if (os.platform() === "win32") {
|
if (os.platform() === "win32") {
|
||||||
@ -84,10 +81,13 @@ async function main(): Promise<number | void> {
|
|||||||
version = "0.0.1-nightly." + version;
|
version = "0.0.1-nightly." + version;
|
||||||
}
|
}
|
||||||
cfg.extraMetadata!.version = version;
|
cfg.extraMetadata!.version = version;
|
||||||
|
} else {
|
||||||
|
if (!cfg.deb!.fpm) cfg.deb!.fpm = [];
|
||||||
|
cfg.deb!.fpm!.push("--deb-field", "Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)");
|
||||||
|
cfg.deb!.fpm!.push("--deb-field", "Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argv["signtool-thumbprint"] && argv["signtool-subject-name"]) {
|
if (argv["signtool-thumbprint"] && argv["signtool-subject-name"]) {
|
||||||
cfg.win!.signingHashAlgorithms = ["sha256"];
|
|
||||||
cfg.win!.certificateSubjectName = argv["signtool-subject-name"];
|
cfg.win!.certificateSubjectName = argv["signtool-subject-name"];
|
||||||
cfg.win!.certificateSha1 = argv["signtool-thumbprint"];
|
cfg.win!.certificateSha1 = argv["signtool-thumbprint"];
|
||||||
}
|
}
|
||||||
@ -103,15 +103,14 @@ async function main(): Promise<number | void> {
|
|||||||
// https://github.com/vector-im/element-web/issues/13171
|
// https://github.com/vector-im/element-web/issues/13171
|
||||||
cfg.extraMetadata!.productName = cfg.extraMetadata!.productName!.replace(/ /g, "-");
|
cfg.extraMetadata!.productName = cfg.extraMetadata!.productName!.replace(/ /g, "-");
|
||||||
|
|
||||||
cfg.deb = {
|
|
||||||
fpm: [],
|
|
||||||
};
|
|
||||||
|
|
||||||
if (argv["deb-custom-control"]) {
|
|
||||||
cfg.deb.fpm!.push(`--deb-custom-control=${argv["deb-custom-control"]}`);
|
|
||||||
}
|
|
||||||
if (argv["deb-changelog"]) {
|
if (argv["deb-changelog"]) {
|
||||||
cfg.deb.fpm!.push(`--deb-changelog=${argv["deb-changelog"]}`);
|
if (!cfg.deb!.fpm) cfg.deb!.fpm = [];
|
||||||
|
cfg.deb!.fpm!.push(`--deb-changelog=${argv["deb-changelog"]}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.SQLCIPHER_BUNDLED) {
|
||||||
|
// Remove sqlcipher dependency when using bundled
|
||||||
|
cfg.deb!.recommends = cfg.deb!.recommends?.filter((d) => d !== "libsqlcipher0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user