Commit Graph

297 Commits (b44df4bcc3119e56e1338476b3361bc0cd8c88be)

Author SHA1 Message Date
Jonas Fentker f5bd5a345e docker: download required branch only 2020-03-04 23:14:42 +01:00
J. Ryan Stinnett 096a828e44 Change Windows signing to warning when missing token
This allows Windows builds to complete when the singing token is not present.
2020-02-26 11:54:20 +00:00
J. Ryan Stinnett bdb395aa41 Change to banner style 2020-02-25 12:05:36 +00:00
J. Ryan Stinnett 420537a64d Relax macOS notarisation check to print a warning
This makes it a bit more friendly to build macOS Electron builds without a
notarisation config set up by only warning when it is missing.
2020-02-25 11:44:33 +00:00
Jason Robinson 9534a25270 Fix contribute.json location as per spec
Signed-off-by: Jason Robinson <jasonr@matrix.org>
2020-02-05 16:28:44 +02:00
Jason Robinson 3abe61e13b Add contribute.json
This document is required for example for all Mozilla websites
and makes sense for Riot to also describe itself - see
https://www.contributejson.org/

Signed-off-by: Jason Robinson <jasonr@matrix.org>
2020-02-05 15:25:09 +02:00
J. Ryan Stinnett b6963d0e5c Use bash in Docker scripts
Our Docker scripts use Bash-style conditionals that aren't supported by the
default Debian shell.
2020-01-22 17:45:22 +00:00
Travis Ralston 909fddb732 Don't minifiy builds of develop through CI packaging
Fixes https://github.com/vector-im/riot-web/issues/11864

This uses an environment variable because the build script assumes you want a production build, but we don't for this particular script. To avoid having a mess of NPM scripts to worry about, we'll just pass a flag down.
2020-01-15 12:19:45 -07:00
Travis Ralston a978a6734f Fix CI tests
There's a bunch of generated files that webpack relies on to work, and Karma works off webpack. To make both happy we've added
a new `build:genfiles` script which takes care of this for us. We also have to install and build our other layers to get the
same effect (like generating the react-sdk's component index, while we still have one).

This commit also fixes all the imports in the tests because they were just wrong. They should have been caught in the ES6ification
earlier, but were missed.
2020-01-13 20:40:00 -07:00
Travis Ralston f73d2bae1f Merge branch 'develop' into travis/sourcemaps 2020-01-13 11:22:47 -07:00
Dale Harvey a41484cb35 Add stub service worker so users can install on desktop with Chrome
Signed-off-by: Dale Harvey <dale@arandomurl.com>
2020-01-10 19:08:56 +00:00
Travis Ralston 9bf1c65971 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-dev 2020-01-09 13:43:25 -07:00
Travis Ralston ec66069e96 Update build scripts for new process
We have to convert *something* to TypeScript so it doesn't complain that there's nothing to compile, so this converts the easiest utility library.

Many of the scripts are copied from the react-sdk.
2020-01-08 16:09:42 -07:00
Travis Ralston 3389f7afc9 Fix version file for Docker images
Fixes https://github.com/vector-im/riot-web/issues/11642
2019-12-24 18:34:40 -07:00
Travis Ralston 831522d02d Update Lithuanian language name
By request: https://matrix.to/#/!yvhoprZiKmhjxKfNHa:matrix.org/$E_5Waedui4X866edAWmYVAjg6vv-vwAXRHN4h0DKY6s?via=matrix.eclabs.de&via=matrix.org&via=dodsorf.as
2019-12-03 23:14:40 -07:00
Travis Ralston ea1ed19a92
Merge pull request #11592 from vector-im/travis/more-language
Enable more languages
2019-12-03 10:11:54 -07:00
Travis Ralston e4bf84701d Use ISO code table as a source instead
https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
2019-12-03 09:52:10 -07:00
Travis Ralston a76f897171 Enable more languages
Enabled (riot-web % / react-sdk %):
* Lithuanian: 100% / 48.1% translated
* Hindi: 69.6% / 36.5% translated
* Ukrainian: 100% / 28.5% translated
* Icelandic: 43.5% / 27.7% translated

They aren't the highest languages, but they are more than our lowest translated & enabled languages.
2019-12-02 20:55:16 -07:00
Travis Ralston 726bf35b76 Fix Docker build for develop and publish a /version file
Fixes https://github.com/vector-im/riot-web/issues/10426
2019-12-02 16:58:50 -07:00
RiotRobot b93b6b448e Restore creation of the dist directory 2019-11-27 13:02:14 +00:00
RiotRobot d0c8a6af50 Copy signed Windows installers to pub directory 2019-11-27 12:44:40 +00:00
RiotRobot dd9305140b Only log signing command when it fails 2019-11-27 12:22:51 +00:00
RiotRobot cde5c9c027 Remove redundant Windows installer signing
The signing in `electron-package.sh` is no longer needed, since it's already
handled in the new sign script for `electron-builder`.
2019-11-27 12:15:05 +00:00
RiotRobot 99ee0fc72d Fix Windows signing args
The hash arg seems to only accept the short `-h` form. In addition, the args in
the environment contained a fixed hash type which is removed here.
2019-11-27 11:54:33 +00:00
David Baker 070d5fc6e8 Sign all of the Windows executable files
We can actually just supply a custom signing module here to do our
signing rather than manually signing things in the afterSign hook.
This means all 4 executable files get signed (the main exe, the
stub exe, Update.exe and the installer).
2019-11-26 12:08:29 -07:00
David Baker 64c23ae18d Fix error/exception in electron signing script
'Exception' isn't a thing: Error is
2019-11-19 15:55:03 +00:00
David Baker 8e81685a9f
Merge pull request #11126 from vector-im/dbkr/windows_signing
Sign main Windows executable
2019-10-18 12:02:04 +01:00
David Baker 94e721acf2 Update cert name & do bash globbing correctly 2019-10-18 10:31:45 +01:00
David Baker 3545b2751d
typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2019-10-18 10:08:43 +01:00
David Baker 21ea6c6283
Merge pull request #11119 from vector-im/dbkr/notarise
Notarise the macOS app
2019-10-11 15:48:04 +01:00
Nazım Can Altınova dd9898e687 Fix the label of Turkish language
Türk means Turkish as nationality and Türkçe means Turkish as language.
2019-10-11 14:01:16 +02:00
David Baker 1ff06c4be4 Missing space
also don't print the signing command line as it has the token password
2019-10-11 12:21:28 +01:00
David Baker 5a7efcd738 Sign the main executable on windows
and automate the signing of the installers
2019-10-11 12:01:50 +01:00
David Baker 071223120b Warn that this might be a while 2019-10-11 10:45:42 +01:00
David Baker 2bab328f8d Check everything's in place for the notarising dance
...before we start the build process.
2019-10-10 15:32:17 +01:00
David Baker 7faba49f66 fix quotes 2019-10-10 11:53:49 +01:00
David Baker bad97db302 remove random spaces 2019-10-09 16:40:31 +01:00
David Baker ff70339aad Working branch for notarisation 2019-10-09 16:29:24 +01:00
J. Ryan Stinnett 54767b5a65 Clean Yarn cache during Electron builds 2019-09-27 12:49:13 +01:00
Travis Ralston 6b07186078 Verify i18n in CI 2019-07-11 12:45:06 -06:00
J. Ryan Stinnett aaceaf097c Add Albanian language 2019-06-04 17:45:59 +01:00
J. Ryan Stinnett 1c42ee1a30 Add West Flemish language 2019-06-04 17:43:28 +01:00
Matthew Hodgson 4cbe6c1000 remove emojione 2019-05-19 21:26:11 +01:00
Travis Ralston 3123b429f7 Increase timeout for yarn install in Docker builds
Otherwise we run into problems where Docker Hub's limited machines timeout trying to download our dependencies
2019-05-15 16:24:25 -06:00
David Baker a7756fc876 Respond quickly to buildkite pokes
Otherwise it thinks they have failed, as per comment.
2019-05-02 18:05:11 +01:00
Travis Ralston 9957149115
Merge pull request #9426 from vector-im/travis/dockerfile-continued
Add Dockerfile (part 2)
2019-05-01 10:42:21 -06:00
David Baker 77dff119db Fix variable scope in redeployer 2019-04-26 16:26:48 +01:00
David Baker 0718d438b8 Fix more typos in redeployer 2019-04-26 16:19:49 +01:00
David Baker 3a2541d3bf more logging for auto-deployer 2019-04-26 16:16:14 +01:00
David Baker f49732b036 Link to buildkite webhook docs 2019-04-26 15:41:20 +01:00
J. Ryan Stinnett 73144c3493
Typing is hard
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:23 +01:00
J. Ryan Stinnett c5e7e82b46
I can't type buildkite
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:05 +01:00
David Baker af6ad9355d Convert redeploy.py to buildkite 2019-04-26 15:26:03 +01:00
David Baker c62da0eda6 Don't fail if there's no local config to remove
The script has a set -e so don't fail if there's nothing to rm
2019-04-26 14:13:02 +01:00
David Baker afc2b48073 combine sets 2019-04-26 12:22:32 +01:00
David Baker 1b8583fa51 Change jenkins script to package script
Take the useful part of the jenkins script and put it in a script
that makes a package with the git hashes as its version.
2019-04-26 11:25:41 +01:00
J. Ryan Stinnett 8002d98f50 Remove config.json from package dir 2019-04-24 11:28:26 +01:00
David Baker addca871ad Fix default for --include arg
nargs options are arrays and we assume it's an array later, so it
would iterate over each char of the string if left as the default
2019-04-17 18:31:36 +01:00
Travis Ralston 1bb70930fa Support custom SDKs and use yarn 2019-04-10 15:47:02 -06:00
J. Ryan Stinnett 52ad757cf4 Switch to `git` protocol for CI dependencies
If you try to clone a repo that doesn't exist via `https`, `git` will prompt for
auth credentials and hang forever. Using `git` avoids this and fails immediately
instead, which is what we want for a missing repo.

Part of https://github.com/vector-im/riot-web/issues/9221
2019-03-20 18:06:18 +00:00
J. Ryan Stinnett f5c28a19e1 Support CI for matching branches on forks
Currently, people with push access to the main Riot repos can push matching
branch names to Riot and the SDKs, and CI will test all the branches together.
This change allows contributors to access the same ability when submitting
several matching PRs from their fork of each repo.

Part of https://github.com/vector-im/riot-web/issues/9041
2019-03-19 18:17:27 +00:00
Travis Ralston df7b617881 Fix downstream branch fetching
We should be giving the PR the best possible chance at passing the build.
2019-03-15 10:23:43 -06:00
Travis Ralston ef6313fbb4 Use the right CI branch 2019-03-13 22:44:28 -06:00
J. Ryan Stinnett 1312ba537a Update scripts and docs to use `yarn` where appropriate
Most `npm` operations are replaced with `yarn`, which generally has better
behavior. However, steps like publish that write to the NPM registry are left to
`npm`, which currently handles these tasks best.
2019-03-12 11:06:57 +00:00
David Baker 12a56e37ba Don't copy the 32 bit linux deb
As per comment
2019-03-07 11:12:43 +00:00
David Baker 7b684aee0c Also makes this unnecessary 2019-03-06 16:48:58 +00:00
David Baker 8543c7b9ff Merge branch 'release-v1.0.2' 2019-03-06 11:36:41 +00:00
David Baker 53e25ff247 Set a resuire alias for the webapp directory
So languagehandler can pull the languages json from there
2019-03-01 11:32:37 +00:00
J. Ryan Stinnett 09b17f77c2 Fix language file path for Jenkins
Jenkins seems to use a different layout of the repos than other environments.
The sub-projects are cloned inside of the `riot-web` workspace. To account for
this, we need to adjust the Riot language file path.
2019-02-21 12:31:45 +00:00
Bruno Windels e56206241b use same hash format as webpack defaults 2019-02-20 09:39:27 +01:00
Richard van der Hoff d4e1f1af7a
Fix cleanup script not to remove extracted/bundles directories (#8764) 2019-02-18 17:05:48 +00:00
Bruno Windels 878190ba27 add content hash to individual language files 2019-02-18 16:11:41 +01:00
Matthew Hodgson 20dc7068af
Merge pull request #8550 from abeluck/develop
Make scripts/make-icons.sh work on linux
2019-02-15 12:28:58 +00:00
J. Ryan Stinnett 674b8c3561 Merge branch 'release-v1.0.0' 2019-02-14 17:11:09 +00:00
J. Ryan Stinnett 4872992ba2 Make arch specific directories 2019-02-14 13:13:53 +00:00
J. Ryan Stinnett 2b069fce75 Copy unsigned builds to separate dirs 2019-02-14 13:05:49 +00:00
J. Ryan Stinnett 0f4757c289 Fix up packaging directories for Windows 2019-02-14 12:54:26 +00:00
Abel Luck d395fdcc6a
Make scripts/make-icons.sh work on linux
This commit detects if the macos-only utility `iconutil` is available in
the PATH, if it is, then the icns is built as usual. However if it
isn't (such as on a linux system), then it checks for `png2icns` and
uses it if possible.

Signed-off-by: Abel Luck <abel@guardianproject.info>
2019-02-13 11:59:36 +01:00
J. Ryan Stinnett 7b9de1dbf2 Remove Status theme 2019-02-13 10:47:51 +00:00
J. Ryan Stinnett dd51cccd7c Move home to welcome, remove unused images 2019-02-07 17:10:38 +00:00
vectorwebexp@ares c421c0b1bf cleanup script for the deployment dir
-- richvdh
2019-02-02 22:43:43 +00:00
David Baker 03de7f9901 Cache-bust olm.wasm
In the same way as we now do images/fonts
2019-01-28 14:09:28 +00:00
David Baker a28691f14d Add returns to fetch-develop-deps
These look necessary for https://github.com/vector-im/riot-web/pull/8225
to work - the build is failing on jenkins
2019-01-23 11:40:21 +00:00
J. Ryan Stinnett cf150fc575 Try fetching more branches for PRs
Attempt both the PR author's branch and the PR's target branch. This resolves
issues on experimental where we need matrix-react-sdk to also be experimental.
2019-01-22 21:28:09 -06:00
J. Ryan Stinnett 49be03e845 Process images with Webpack
This adds a `file-loader` rule to the Webpack build so that any requests for
image resource will be output into the app's output directory, but with an extra
content has appended so that we can safely use a long cache lifetime.

The CSS and SCSS rules are also changed to use `css-loader` so that any `url`
inside is automatically processed by the new image rule above.
2019-01-18 08:39:09 -06:00
David Baker 8298e73205 Argh, npm, why are you so awful? 2018-11-21 19:25:11 +00:00
David Baker d2c87a0331 Fix jenkins build 2018-11-21 19:13:42 +00:00
David Baker 7df77d7e5d Recent node please 2018-11-21 19:00:11 +00:00
Aaron Raimist 2f991d190f
Add Japanese (#7599)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-11-08 13:31:09 -06:00
David Baker 9b80aa76ce
Merge pull request #7385 from vector-im/dbkr/wasm
Support WebAssembly version of Olm
2018-10-25 15:58:24 +01:00
David Baker de7d3ba701 Change electron build script paths
Because electron builder has decided to output the mac assets to
somewhere else today.
2018-10-16 10:26:04 +01:00
David Baker c5ee92f4c3 Fall back to legacy asm.js Olm 2018-10-04 20:11:34 +01:00
David Baker 30f0a7932b Merge remote-tracking branch 'origin/develop' into dbkr/wasm 2018-10-02 16:58:31 +01:00
David Baker 1f34d2d644 Kill off olm-loader
Now that Olm needs to be inited asynchronously anyway, we can just
pass the options to Olm.init(), and as long as we do that before we
start the js-sdk, we're all good.

This will means the olm js is now part of the main bundle but since
it's now just a wrapper around the wasm, this is probably faster.

Also add the directwatch flag to olm.wasm because otherwise it
doesn't seem to copy the file in watch mode...
2018-09-26 16:44:52 +01:00
Travis Ralston 4041f3db5c Send standard output/input from npm-sub.js to the parent proc 2018-09-25 15:54:38 -06:00
Travis Ralston 91304e70a1 Swap out the complicated canary stuff for serial execution
Fixes https://github.com/vector-im/riot-web/issues/7386
2018-09-25 15:49:14 -06:00
Travis Ralston 27c23058dc Alter build process to rely on canaries only
With the react-sdk and js-sdk having their `npm start`s split out (as per https://github.com/matrix-org/matrix-react-sdk/pull/2175 and https://github.com/matrix-org/matrix-js-sdk/pull/742) we can trigger an initial build ourselves and start the watcher afterwards. This canary approach has a very slight speed increase over serially running all the commands as the watcher can be started as early as possible.

This all can be improved and potentially eliminated with a bit more planning, however: https://github.com/vector-im/riot-web/issues/7386
2018-09-25 11:20:58 -06:00
David Baker c511902356 Support WebAssembly version of Olm.
* Olm no longer supports setting the stack/memory size at runtime,
   so don't (they're now set to be that in the Olm build).
 * Copy the wasm file from the Olm library (see multiple comments
   about it being in the wrong place and webpack being awful).
2018-09-25 17:55:41 +01:00
Travis Ralston 8d7cec2a94 Add some comments to describe the build process 2018-09-24 17:57:18 -06:00
Travis Ralston 2b037ee146 Prevent races by blocking on SDK builds
If we don't block on SDK builds, then the riot-web build fails due to half-built dependencies. This needs to be done at two levels: the js-sdk because it is used by both the react-sdk and riot-web, and at the react-sdk because riot-web needs it. This means our build process is synchronous for js -> react -> riot, at least for the initial build. 

This does increase the startup time, particularly because the file watch timer is at 5 seconds. The timer is used to detect a storm of file changes in the underlying SDKs and give the build process some room to compile larger files if needed. 

The file watcher is accompanied by a "canary signal file" to prevent the build-blocking script from unblocking too early. Both the js and react SDKs build when `npm install` is run, so we ensure that we only listen for the `npm start` build for each SDK.

This is all done at the riot level instead of at the individual SDK levels (where we could use a canary file to signal up the stack) because:
* babel (used by the js-sdk) doesn't really provide an "end up build" signal
* webpack is a bit of a nightmare to get it to behave at times
* this blocking approach is really only applicable to riot-web, although may be useful to some other projects.

Hopefully that all makes sense.
2018-09-24 17:12:42 -06:00