Github action and creation scripts
This commit is contained in:
parent
5c12e58cd7
commit
83687f6324
7 changed files with 154 additions and 10 deletions
30
.github/workflows/builds.yaml
vendored
Normal file
30
.github/workflows/builds.yaml
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
name: Builds
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- production
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- production
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
builds:
|
||||||
|
name: Builds
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Create the package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
./bin/build-addon.sh
|
||||||
|
|
||||||
|
- name: Uploading
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: ${{matrix.config.name}} Build
|
||||||
|
path: src/web-ext-artifacts
|
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -1,3 +1,5 @@
|
||||||
[submodule "src/_locales"]
|
[submodule "src/_locales"]
|
||||||
|
branch = main
|
||||||
path = src/_locales
|
path = src/_locales
|
||||||
url = https://github.com/mozilla-l10n/multi-account-containers-l10n.git
|
url = https://github.com/mozilla-l10n/multi-account-containers-l10n.git
|
||||||
|
ignore=all
|
||||||
|
|
18
README.md
18
README.md
|
@ -22,17 +22,19 @@ For more info, see:
|
||||||
|
|
||||||
#### Via WebExtensions API (web-ext)
|
#### Via WebExtensions API (web-ext)
|
||||||
|
|
||||||
1. Install the [web-ext](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext) tool.
|
1. Fetch the locales updating the git-submodules: `git submodule init && git submodule update --remote --depth 1 src/_locales`
|
||||||
2. Run `web-ext run -s src/`. This launches Firefox and installs the extension automatically.
|
2. Install the [web-ext](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext) tool.
|
||||||
|
3. Run `web-ext run -s src/`. This launches Firefox and installs the extension automatically.
|
||||||
|
|
||||||
This tool provides some additional development features, such as [automatic reloading](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Automatic_extension_reloading).
|
This tool provides some additional development features, such as [automatic reloading](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Automatic_extension_reloading).
|
||||||
|
|
||||||
#### Via about:debugging in Firefox
|
#### Via about:debugging in Firefox
|
||||||
|
|
||||||
1. Open the `about:debugging` page in Firefox.
|
1. Fetch the locales updating the git-submodules: `git submodule init && git submodule update --remote --depth 1 src/_locales`
|
||||||
2. Click on `This Firefox`.
|
2. Open the `about:debugging` page in Firefox.
|
||||||
3. Click on [Load Temporary Add-on](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox).
|
3. Click on `This Firefox`.
|
||||||
4. Select `src/manifest.json`.
|
4. Click on [Load Temporary Add-on](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox).
|
||||||
|
5. Select `src/manifest.json`.
|
||||||
|
|
||||||
Here is a [video](https://www.youtube.com/watch?v=cer9EUKegG4) that demonstrates how to do this.
|
Here is a [video](https://www.youtube.com/watch?v=cer9EUKegG4) that demonstrates how to do this.
|
||||||
|
|
||||||
|
@ -59,6 +61,7 @@ Here is a [video](https://www.youtube.com/watch?v=cer9EUKegG4) that demonstrates
|
||||||
There is a timeout test that sometimes fails on certain machines, so make sure to run the tests on your clone before you make any changes to see if you have this problem.
|
There is a timeout test that sometimes fails on certain machines, so make sure to run the tests on your clone before you make any changes to see if you have this problem.
|
||||||
|
|
||||||
#### Add/update messages for translation
|
#### Add/update messages for translation
|
||||||
|
|
||||||
The `src/_locales` directory is a git repository like any other, so to make changes to the messages:
|
The `src/_locales` directory is a git repository like any other, so to make changes to the messages:
|
||||||
|
|
||||||
1. Make whatever changes you need in `src/_locales/en` as you work.
|
1. Make whatever changes you need in `src/_locales/en` as you work.
|
||||||
|
@ -83,10 +86,11 @@ You can then open a pull request from the `message-updates-yyyymmdd` branch to
|
||||||
|
|
||||||
#### Publish to AMO
|
#### Publish to AMO
|
||||||
|
|
||||||
1. `npm run-script build`
|
1. `./bin/build-addon.sh`
|
||||||
2. [Upload the `.zip` to AMO](https://addons.mozilla.org/developers/addon/multi-account-containers/versions/submit/)
|
2. [Upload the `.zip` to AMO](https://addons.mozilla.org/developers/addon/multi-account-containers/versions/submit/)
|
||||||
|
|
||||||
#### Publish to GitHub
|
#### Publish to GitHub
|
||||||
|
|
||||||
Finally, we also publish the release to GitHub for those followers.
|
Finally, we also publish the release to GitHub for those followers.
|
||||||
|
|
||||||
1. Download the signed `.xpi` from [the addon versions page](https://addons.mozilla.org/developers/addon/multi-account-containers/versions)
|
1. Download the signed `.xpi` from [the addon versions page](https://addons.mozilla.org/developers/addon/multi-account-containers/versions)
|
||||||
|
|
35
bin/addons-linter.sh
Executable file
35
bin/addons-linter.sh
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
# addons-linter is not happy to see a `.github` folder in src/_locales.
|
||||||
|
# We need to do an horrible hack to run the test.
|
||||||
|
|
||||||
|
. $(dirname $0)/commons.sh
|
||||||
|
|
||||||
|
TMPDIR=/tmp/MAC_addonsLinter
|
||||||
|
|
||||||
|
print Y "Update the submodules..."
|
||||||
|
git submodule init || die
|
||||||
|
git submodule update --remote --depth 1 src/_locales || die
|
||||||
|
|
||||||
|
printn Y "Removing previous execution data... "
|
||||||
|
rm -rf $TMPDIR || die
|
||||||
|
print G "done."
|
||||||
|
|
||||||
|
printn Y "Creating a tmp folder ($TMPDIR)... "
|
||||||
|
mkdir $TMPDIR || die
|
||||||
|
print G "done."
|
||||||
|
|
||||||
|
printn Y "Copying data... "
|
||||||
|
cp -r src $TMPDIR || die
|
||||||
|
print G "done."
|
||||||
|
|
||||||
|
printn Y "Removing the github folder... "
|
||||||
|
rm -rf $TMPDIR/src/_locales/.github || die
|
||||||
|
print G "done."
|
||||||
|
|
||||||
|
print Y "Running the test..."
|
||||||
|
$(npm bin)/addons-linter $TMPDIR/src || die
|
|
@ -1 +1,21 @@
|
||||||
npm install && npm run deploy
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
. $(dirname $0)/commons.sh
|
||||||
|
|
||||||
|
print Y "Update the submodules..."
|
||||||
|
git submodule init || die
|
||||||
|
git submodule update --remote --depth 1 src/_locales || die
|
||||||
|
|
||||||
|
print Y "Installing dependencies..."
|
||||||
|
npm install || die
|
||||||
|
|
||||||
|
print Y "Running tests..."
|
||||||
|
npm test
|
||||||
|
|
||||||
|
print Y "Creating the final package..."
|
||||||
|
cd src || die
|
||||||
|
$(npm bin)/web-ext build --overwrite-dest || die
|
||||||
|
|
54
bin/commons.sh
Normal file
54
bin/commons.sh
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
printv() {
|
||||||
|
if [ -t 1 ]; then
|
||||||
|
NCOLORS=$(tput colors)
|
||||||
|
|
||||||
|
if test -n "$NCOLORS" && test "$NCOLORS" -ge 8; then
|
||||||
|
NORMAL="$(tput sgr0)"
|
||||||
|
RED="$(tput setaf 1)"
|
||||||
|
GREEN="$(tput setaf 2)"
|
||||||
|
YELLOW="$(tput setaf 3)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $2 = 'G' ]]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
echo $1 -e "${GREEN}$3${NORMAL}"
|
||||||
|
elif [[ $2 = 'Y' ]]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
echo $1 -e "${YELLOW}$3${NORMAL}"
|
||||||
|
elif [[ $2 = 'N' ]]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
echo $1 -e "$3"
|
||||||
|
else
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
echo $1 -e "${RED}$3${NORMAL}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print() {
|
||||||
|
printv '' "$1" "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
printn() {
|
||||||
|
printv "-n" "$1" "$2"
|
||||||
|
}
|
||||||
|
|
||||||
|
error() {
|
||||||
|
printv '' R "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
die() {
|
||||||
|
if [[ "$1" ]]; then
|
||||||
|
error "$1"
|
||||||
|
else
|
||||||
|
error Failed
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
|
@ -36,10 +36,9 @@
|
||||||
"url": "git+https://github.com/mozilla/multi-account-containers.git"
|
"url": "git+https://github.com/mozilla/multi-account-containers.git"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm test && cd src && web-ext build --overwrite-dest",
|
|
||||||
"webext": "web-ext run -s src/",
|
"webext": "web-ext run -s src/",
|
||||||
"lint": "npm-run-all lint:*",
|
"lint": "npm-run-all lint:*",
|
||||||
"lint:addon": "addons-linter src --self-hosted",
|
"lint:addon": "./bin/addons-linter.sh",
|
||||||
"lint:css": "stylelint src/css/*.css",
|
"lint:css": "stylelint src/css/*.css",
|
||||||
"lint:html": "htmllint *.html",
|
"lint:html": "htmllint *.html",
|
||||||
"lint:js": "eslint .",
|
"lint:js": "eslint .",
|
||||||
|
|
Loading…
Add table
Reference in a new issue