Commit graph

169 commits

Author SHA1 Message Date
Germain Souquet
8090d2b583 Fix branch matching for BuildKite 2021-06-22 09:31:15 +01:00
Germain Souquet
ca5f8f97bb Branch matching support for forked repository on GitHub actions 2021-06-21 16:18:13 +01:00
Germain Souquet
2d9e97a3e1 Fix branch matching to work with GitHub Actions and BuildKite 2021-06-21 09:47:46 +01:00
Michael Telatynski
6c64f564e4 Naive attempt at improving our end-to-end tests in Github Actions 2021-06-21 09:14:44 +01:00
Michael Telatynski
4ff25c5978
Add jq to e2e tests Dockerfile 2021-06-18 19:16:39 +01:00
Germain Souquet
4123406785 Move i18n utils to its own module 2021-04-26 16:55:12 +01:00
Šimon Brandner
a9853c4f8f
Clone author's deps fork for Netlify previews
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-08 19:09:00 +02:00
J. Ryan Stinnett
b2d4639ec9 Use fsync in reskindex to ensure file is written to disk
This should (hopefully) resolve occasional errors where the rename step would
fail because the temporary file did not exist. In addition, this also exits with
an error code if something goes wrong so we notice it early, rather than having
to scroll through pages of logs at release time.
2021-03-11 13:40:11 +00:00
J. Ryan Stinnett
5b2f915ee9 Move to newer base image for end-to-end tests
This updates to Node 14 (current LTS) as well as moving from Debian Stretch to
Buster for the base OS. The Debian upgrade brings along a newer Python 3.8,
which is actively supported.

Fixes https://github.com/vector-im/element-web/issues/16272
2021-01-25 12:32:37 +00:00
J. Ryan Stinnett
016140670b Fix let binding in reskindex.js 2021-01-19 17:58:17 +00:00
J. Ryan Stinnett
4e5f25206a Ensure component index has been written before renaming
This ensures we correctly wait for `component-index.js.tmp` to be written to
disk before trying to rename into place. This fixes an issue where stray temp
files were being strewn about the repos after renaming failures.
2021-01-19 14:45:03 +00:00
J. Ryan Stinnett
0e137bd0f6 Fix code style 2021-01-19 14:42:10 +00:00
J. Ryan Stinnett
a22049a679 Use const / let instead of var 2021-01-19 14:38:36 +00:00
J. Ryan Stinnett
e90e51cc9b React SDK needs to build the component index 2020-12-18 15:13:09 +00:00
J. Ryan Stinnett
50427786f9 Cloned deps do not need any building now 2020-12-18 15:11:55 +00:00
J. Ryan Stinnett
19cfe44b16 Types from dependencies are now built explicitly 2020-12-18 11:59:30 +00:00
J. Ryan Stinnett
3d3490c6d7 For cloned deps, we only need to build types 2020-12-18 11:59:30 +00:00
J. Ryan Stinnett
c63c8540f1 Remove old app test script path
Now that https://github.com/matrix-org/pipelines/pull/112 has merged, we no
longer need to support this old path for launching app-level tests.
2020-12-04 11:05:05 +00:00
David Baker
c853085e29 Add support for Netlify to fetchdep script
and remove support for Jenkins
2020-12-03 18:40:33 +00:00
J. Ryan Stinnett
883d5d96a7 Nest other layers inside on automation
This changes the nesting style because some CI / CD systems do not allow moving
to a directory above the checkout for the primary repo (`react-sdk` in this
case).

Part of https://github.com/vector-im/element-web/issues/12624
2020-12-03 16:21:40 +00:00
J. Ryan Stinnett
a6e69db8f5 Rebrand E2E test Docker image 2020-12-03 14:56:24 +00:00
J. Ryan Stinnett
cdc57cf1f5 Add temporary symlink for pipeline 2020-12-03 13:58:25 +00:00
J. Ryan Stinnett
1fda735222 Rebrand various CI scripts and modules
This replaces Riot with Element in various CI scripts, modules, parameters, etc.
This _should_ be the last major rebranding pass (hopefully).

Fixes https://github.com/vector-im/element-web/issues/14894
2020-12-03 13:56:27 +00:00
J. Ryan Stinnett
ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
Travis Ralston
fed20d46c5 Replace i18n generation script with something matching our project
We've been relying on flow being close enough to TypeScript for so long that it is starting to run into issues. Here we switch to babel's parser given we already use babel in the project.

Babel's parser is also *slightly* faster, allowing us to generate strings 0.1s faster.
2020-07-31 13:33:33 -06:00
Travis Ralston
6d46ef548e Enable tests again to catch failures 2020-04-16 16:26:29 -06:00
Travis Ralston
3614170906 Disable scripts in CI too 2020-04-16 12:47:25 -06:00
Michael Telatynski
68608c2bcb Fix gen-i18n.js script for .ts files
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-08 21:42:12 +01:00
David Baker
544e2c9971 Don't use buildkite agent to upload logs 2020-03-18 20:56:02 +00:00
Travis Ralston
7dd7417f12 Enable support for TypeScript in components
Includes: compilation, translations, IDE support (use .tsx not .ts), typings, and other build tools.

TypeScript component have to import PropTypes and React with `import * as React from 'react';`
2020-03-11 18:03:43 -06:00
Bruno Windels
cda281044d ignore node_modules in e2e tests 2020-02-21 14:18:28 +01:00
Michael Telatynski
b099c983d6 Use minimist instead of optimist as it is deprecated 2020-02-04 10:16:39 +00:00
David Baker
57ee99d6f7 chmod 2020-01-24 14:30:41 +00:00
David Baker
5536384866 Do less unnecessary work on CI
We were checking out & installing the develop js-sdk explicitly
in cases where we didn't need it at all. We were babeling the src
folder many, many times over (in some cases twice in the same job)
and never using the output at all.
2020-01-24 14:21:28 +00:00
Travis Ralston
708f62784f
Consistency
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2020-01-21 10:59:33 -07:00
Travis Ralston
33220c2d72 Ensure generated files are present for riot-web tests 2020-01-21 10:53:17 -07:00
Travis Ralston
3b2f96bc04 Try explicitly mapping the directory 2020-01-20 18:02:54 -07:00
Travis Ralston
776b3af6bb Fix relative pathing on riot-web link 2020-01-20 16:33:22 -07:00
Travis Ralston
19615d3721 Disable minification of Riot in end-to-end tests 2020-01-20 16:33:13 -07:00
Travis Ralston
27412ba0b2 Fix end-to-end test layering too 2020-01-20 16:23:33 -07:00
Travis Ralston
3eeeb9c6af Remove irrelevant build steps 2020-01-20 16:20:02 -07:00
Travis Ralston
62b1dd77a6 Fix layering of the riot-web tests pipeline 2020-01-20 16:12:59 -07:00
Travis Ralston
8f37f8638d Build the js-sdk for Jest tests
This is theoretically a fix for the tests failing post-sourcemaps.
2020-01-15 10:28:27 -07:00
Travis Ralston
a8c8406ac4 Merge remote-tracking branch 'origin/t3chguy/jest' into travis/sourcemaps 2020-01-09 16:06:46 -07:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
David Baker
2970a9faaf Don't fail if logs exists and is an empty dir 2020-01-03 15:16:02 +00:00
Michael Telatynski
d35b01b63a Get rid of stripped-emoji.json in favour of an in-memory single truth source 2019-12-18 15:40:19 +00:00
Michael Telatynski
386d6ec055 we don't need to install riot-web for react-sdk unit tests 2019-12-17 12:16:40 +00:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
David Baker
604745de96
Merge pull request #3698 from matrix-org/dbkr/chmod_ci
Make CI scripts executable
2019-12-05 11:39:58 +00:00