mirror of
https://github.com/chatmail/core.git
synced 2026-04-06 07:32:12 +03:00
don't ignore core sourcefiles, prevented npm installation on architectures with no prebuild don't run lint checks on windows github actions don't like double quotes apparently minimize node.js CI update ubuntu runner to 22.04 README: update link to node bindings source simplify link in readme node: fix crash with invalid account id (throw error when getContext failed) fix typo in readme remove node specific changelog change prebuild machine back to ubuntu 18.04 move package.json to root level to include rust source in npm package change path in m1 patch github action to upload to download.delta.chat/node/ on tag try build with ubuntu 20.04 Update node/README.md try building it with newer ubuntu because it wants glibc 2.33 fix path for prebuildify script throw error when instanciating a wrapper class on `null` (Context, Message, Chat, ChatList and so on) try fix selecting the right cache to fix the strange glibc bug also revert back ubuntu version to 18.04 also bump package.json version with release script fix paths since we moved around package.json github action: fix path document npm release - it's so much easier now! there are no PR checks to post to if this action is executed on a tag github action: fix artifact names fix paths? wtf do I know, it's 3AM and I'm drunk fix syntax error don't upload preview if action is run on tag is the tag ID an empty string or null? node-package github action is done so far also include scripts in package only publish docs on push to master branch actually bump package.json version in set_core_version script prettify package.json fix test - we don't really need to assert that remove unnecessary ls statement from github action
171 lines
5.3 KiB
YAML
171 lines
5.3 KiB
YAML
name: 'node.js'
|
|
on:
|
|
pull_request:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
|
|
|
|
jobs:
|
|
prebuild:
|
|
name: 'Tests & Prebuild'
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-18.04, macos-latest, windows-latest]
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16'
|
|
- name: System info
|
|
run: |
|
|
rustc -vV
|
|
rustup -vV
|
|
cargo -vV
|
|
npm --version
|
|
node --version
|
|
|
|
- name: Cache node modules
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
${{ env.APPDATA }}/npm-cache
|
|
~/.npm
|
|
key: ${{ matrix.os }}-node-${{ hashFiles('**/package.json') }}
|
|
|
|
- name: Cache cargo index
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.cargo/registry/
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ matrix.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}-2
|
|
|
|
- name: Install dependencies & build
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd node
|
|
npm install --verbose
|
|
|
|
- name: Test
|
|
if: runner.os != 'Windows'
|
|
run: |
|
|
cd node
|
|
npm run test
|
|
env:
|
|
DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
|
|
- name: Run tests on Windows, except lint
|
|
if: runner.os == 'Windows'
|
|
run: |
|
|
cd node
|
|
npm run test:mocha
|
|
env:
|
|
DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
|
|
- name: Build Prebuild
|
|
run: |
|
|
cd node
|
|
npm run prebuildify
|
|
tar -zcvf "${{ matrix.os }}.tar.gz" -C prebuilds .
|
|
|
|
- name: Upload Prebuild
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: ${{ matrix.os }}
|
|
path: node/${{ matrix.os }}.tar.gz
|
|
|
|
pack-module:
|
|
needs: prebuild
|
|
name: 'Package deltachat-node and upload to download.delta.chat'
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- name: install tree
|
|
run: sudo apt install tree
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '16'
|
|
- name: get tag
|
|
id: tag
|
|
uses: dawidd6/action-get-tag@v1
|
|
continue-on-error: true
|
|
- name: Get Pullrequest ID
|
|
id: prepare
|
|
run: |
|
|
tag=${{ steps.tag.outputs.tag }}
|
|
if [ -z "$tag" ]; then
|
|
node -e "console.log('::set-output name=prid::' + '${{ github.ref }}'.split('/')[2])"
|
|
else
|
|
echo "No preview will be uploaded this time, but the $tag release"
|
|
fi
|
|
- name: System info
|
|
run: |
|
|
rustc -vV
|
|
rustup -vV
|
|
cargo -vV
|
|
npm --version
|
|
node --version
|
|
- name: Download ubuntu prebuild
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: ubuntu-18.04
|
|
- name: Download macos prebuild
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: macos-latest
|
|
- name: Download windows prebuild
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: windows-latest
|
|
- shell: bash
|
|
run: |
|
|
mkdir prebuilds
|
|
tar -xvzf ubuntu-18.04/ubuntu-18.04.tar.gz -C prebuilds
|
|
tar -xvzf macos-latest/macos-latest.tar.gz -C prebuilds
|
|
tar -xvzf windows-latest/windows-latest.tar.gz -C prebuilds
|
|
tree prebuilds
|
|
- name: install dependencies without running scripts
|
|
run: |
|
|
npm install --ignore-scripts
|
|
- name: build typescript part
|
|
run: |
|
|
npm run build:bindings:ts
|
|
- name: package
|
|
shell: bash
|
|
run: |
|
|
npm pack .
|
|
ls -lah
|
|
mv $(find deltachat-node-*) deltachat-node-${{ steps.prepare.outputs.prid }}.tar.gz
|
|
- name: Upload Prebuild
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: deltachat-node.tgz
|
|
path: deltachat-node-${{ steps.prepare.outputs.prid }}.tar.gz
|
|
# Upload to download.delta.chat/node/preview/
|
|
- name: Upload deltachat-node preview to download.delta.chat/node/preview/
|
|
id: upload-preview
|
|
shell: bash
|
|
run: |
|
|
echo -e "${{ secrets.SSH_KEY }}" >__TEMP_INPUT_KEY_FILE
|
|
chmod 600 __TEMP_INPUT_KEY_FILE
|
|
scp -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE -P "22" -r deltachat-node-${{ steps.prepare.outputs.prid }}.tar.gz "${{ secrets.USERNAME }}"@"download.delta.chat":"/var/www/html/download/node/preview/"
|
|
continue-on-error: true
|
|
- name: "Post links to details"
|
|
if: steps.upload-preview.outcome == 'success'
|
|
run: node ./node/scripts/postLinksToDetails.js
|
|
env:
|
|
URL: preview/deltachat-node-${{ steps.prepare.outputs.prid }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# Upload to download.delta.chat/node/
|
|
- name: Upload deltachat-node build to download.delta.chat/node/
|
|
if: ${{ steps.tag.outputs.tag }}
|
|
id: upload
|
|
shell: bash
|
|
run: |
|
|
echo -e "${{ secrets.SSH_KEY }}" >__TEMP_INPUT_KEY_FILE
|
|
chmod 600 __TEMP_INPUT_KEY_FILE
|
|
scp -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE -P "22" -r deltachat-node-${{ steps.prepare.outputs.prid }}.tar.gz "${{ secrets.USERNAME }}"@"download.delta.chat":"/var/www/html/download/node/"
|