2021-01-18 08:00:54 +00:00
|
|
|
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
name: Build, Upload, Test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
with:
|
2021-03-03 10:29:48 +00:00
|
|
|
submodules: recursive
|
2021-01-18 08:00:54 +00:00
|
|
|
|
|
|
|
- name: Install Node
|
2021-07-07 04:16:56 +00:00
|
|
|
uses: actions/setup-node@v2
|
2021-01-18 08:00:54 +00:00
|
|
|
with:
|
|
|
|
node-version: 14
|
2021-07-22 08:44:25 +00:00
|
|
|
#cache: npm
|
2021-01-18 08:00:54 +00:00
|
|
|
|
|
|
|
# On GitHub
|
|
|
|
- name: Install xvfb
|
2022-09-13 01:45:12 +00:00
|
|
|
if: false # temporarily disabled
|
|
|
|
#if: env.ACT != 'true'
|
2021-01-18 08:00:54 +00:00
|
|
|
run: sudo apt update && sudo apt install -y xvfb
|
|
|
|
|
|
|
|
# Local via act
|
|
|
|
- name: Install packages for act
|
|
|
|
if: env.ACT == 'true'
|
|
|
|
run: apt update && apt install -y zstd xvfb dbus-x11 libgtk-3-0 libx11-xcb1 libdbus-glib-1-2 libxt6
|
|
|
|
|
|
|
|
- name: Cache Firefox
|
2022-09-13 01:45:12 +00:00
|
|
|
if: false # temporarily disabled
|
2021-01-18 08:00:54 +00:00
|
|
|
id: firefox-cache
|
|
|
|
uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: firefox-x86_64
|
|
|
|
key: firefox-60.9.0esr
|
|
|
|
|
|
|
|
- name: Download Firefox
|
2022-09-13 01:45:12 +00:00
|
|
|
if: false # temporarily disabled
|
|
|
|
#if: steps.firefox-cache.outputs.cache-hit != 'true'
|
2021-01-18 08:00:54 +00:00
|
|
|
run: wget -O tarball "https://zotero-download.s3.us-east-1.amazonaws.com/dev/firefox-60.9.0esr-x86_64-modified.tar.gz"
|
|
|
|
|
|
|
|
- name: Extract Firefox
|
2022-09-13 01:45:12 +00:00
|
|
|
if: false # temporarily disabled
|
|
|
|
#if: steps.firefox-cache.outputs.cache-hit != 'true'
|
2021-01-18 08:00:54 +00:00
|
|
|
run: tar xvf tarball
|
|
|
|
|
|
|
|
- name: Cache Node modules
|
|
|
|
id: node-cache
|
|
|
|
uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: node_modules
|
|
|
|
key: node-modules-${{ hashFiles('package-lock.json') }}
|
|
|
|
|
|
|
|
- name: Install Node modules
|
|
|
|
if: steps.node-cache.outputs.cache-hit != 'true'
|
|
|
|
run: npm install
|
|
|
|
|
|
|
|
- name: Build Zotero
|
|
|
|
run: npm run build
|
|
|
|
|
|
|
|
- name: Upload deployment ZIP
|
|
|
|
if: |
|
|
|
|
env.ACT != 'true'
|
|
|
|
&& github.repository == 'zotero/zotero'
|
|
|
|
&& github.event_name == 'push'
|
2022-09-13 01:45:12 +00:00
|
|
|
&& (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/fx102' || endsWith(github.ref, '-hotfix') || github.ref == 'refs/heads/gh-actions-ci-test')
|
2021-01-18 08:00:54 +00:00
|
|
|
env:
|
|
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
|
|
run: |
|
|
|
|
mkdir build-zip
|
|
|
|
cd build
|
|
|
|
zip -r ../build-zip/$GITHUB_SHA.zip *
|
|
|
|
cd ..
|
2021-02-25 21:16:17 +00:00
|
|
|
sudo gem install --no-document dpl dpl-s3
|
2021-01-18 08:00:54 +00:00
|
|
|
dpl --provider=s3 --bucket=zotero-download --local-dir=build-zip --upload-dir=ci/client --acl=public-read --skip_cleanup=true
|
|
|
|
|
|
|
|
- name: Run tests
|
2022-09-13 01:45:12 +00:00
|
|
|
if: false # temporarily disabled
|
2021-02-25 21:16:17 +00:00
|
|
|
run: xvfb-run test/runtests.sh -x firefox-x86_64/firefox -f
|
2022-04-30 08:55:11 +00:00
|
|
|
|
|
|
|
- name: Cache utilities Node modules
|
|
|
|
id: utilities-node-cache
|
|
|
|
uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: chrome/content/zotero/xpcom/utilities/node_modules
|
|
|
|
key: utilities-node-modules-${{ hashFiles('chrome/content/zotero/xpcom/utilities/package-lock.json') }}
|
|
|
|
|
|
|
|
- name: Install utilities Node modules
|
|
|
|
if: steps.utilities-node-cache.outputs.cache-hit != 'true'
|
|
|
|
run: npm install --prefix chrome/content/zotero/xpcom/utilities
|
|
|
|
|
|
|
|
- name: Run utilities tests
|
|
|
|
run: |
|
|
|
|
npm test --prefix chrome/content/zotero/xpcom/utilities -- -j resource/schema/global/schema.json
|