Skip to content

Commit

Permalink
Feature/enable ci (#19)
Browse files Browse the repository at this point in the history
* Enable JEST tests. WASM libraries are tested from nodejs WASM build.

* Enable Github CI

* Enable Gitlab CI
  • Loading branch information
Manuthor committed Aug 31, 2022
1 parent 246c6fe commit 9bb2789
Show file tree
Hide file tree
Showing 60 changed files with 488 additions and 333 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/jest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: NodeJS with Jest

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [12.x, 14.x, 16.x]

steps:
- uses: actions/checkout@v3

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

- name: Build
run: |
npm install
npm test
52 changes: 52 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
image: node:16

variables:
CARGO_HOME: ${CI_PROJECT_DIR}/.cargo/
SCCACHE_DIR: ${CI_PROJECT_DIR}/.cache/sccache

stages:
- prebuild
- build
- publish

tslint:
stage: prebuild
script:
- npm install -g tslint
- tslint -c tslint.json 'src/**'
allow_failure: true

build_node_12:
stage: build
image: node:12
script:
- npm install
- npm test

build_node_14:
stage: build
image: node:14
script:
- npm install
- npm test

build_node_16:
stage: build
image: node:16
script:
- npm install
- npm test

build_node_18:
stage: build
image: node:18
script:
- npm install
- npm test

publish:
stage: build
script:
- npm publish
only:
- tags
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

All notable changes to this project will be documented in this file.

---
## [1.0.3] - 2022-08-30
### Added
- Enable JEST tests. WASM libraries are tested from `nodejs` WASM build.
- Enable Github & Gitlab CI
### Changed
- Update `CoverCrypt` to `3.1.0`
- Use npm packages for WASM libraries
### Fixed
### Removed

---
## [1.0.2] - 2022-08-19
### Added
Expand Down
2 changes: 1 addition & 1 deletion Launch.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

# II) Deploy project

- Build new image from frontend with the Dockefile example (put it one level above the cosmian_js_lib to run it correctly) `docker build -f Dockerfile -t frontend .`
- Build new image from frontend with the Dockerfile example (put it one level above the cosmian_js_lib to run it correctly) `docker build -f Dockerfile -t frontend .`

- Save this image `docker save frontend > frontend.tar`

Expand Down
38 changes: 0 additions & 38 deletions build_and_run.sh

This file was deleted.

35 changes: 35 additions & 0 deletions build_wasm_for_nodejs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#


#!/bin/sh
set -exEu

CUR_DIR=$(pwd)
WASM_DIR=$(pwd)/tests/wasm_lib

build_wasm_bindgen() {
REPO=$1
CRATE_NAME=$2
WASM_EXTENDED_PATH=$3
GIT_TAG=v$(grep -r "${CRATE_NAME}" package.json|cut -d"^" -f2|cut -d"\"" -f1)

pushd /tmp
rm -rf "$CRATE_NAME"
git clone "$REPO"
cd "$CRATE_NAME"
git checkout "${GIT_TAG}"
wasm-pack build --target nodejs --release --features wasm_bindgen
DEST_DIR="${WASM_DIR}/${WASM_EXTENDED_PATH}"
rm -rf "${DEST_DIR}"
mkdir -p "${DEST_DIR}"
cp pkg/* "${DEST_DIR}/"
popd
}

rm -rf "${WASM_DIR}"
build_wasm_bindgen [email protected]:Cosmian/abe_gpsw.git abe_gpsw abe/gpsw
build_wasm_bindgen [email protected]:Cosmian/cover_crypt.git cover_crypt abe/cover_crypt
build_wasm_bindgen [email protected]:core/findex.git findex findex

cd "${CUR_DIR}"
npm install
7 changes: 5 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# docker-compose.yml

version: '3'
version: "3"
services:
server:
container_name: server
image: postgrest/postgrest
ports:
- "3000:3000"
Expand All @@ -14,6 +15,7 @@ services:
depends_on:
- db
db:
container_name: db
image: postgres
ports:
- "5432:5432"
Expand All @@ -22,9 +24,10 @@ services:
POSTGRES_USER: app_user
POSTGRES_PASSWORD: password
volumes:
- "./pgdata:/var/lib/postgresql/data"
- "./pgdata:/var/lib/postgresql/data"

frontend:
container_name: frontend
image: frontend:latest
environment:
SERVER: http://127.0.0.1:3000
Expand Down
6 changes: 0 additions & 6 deletions import_findex_wasm.sh

This file was deleted.

11 changes: 5 additions & 6 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
module.exports = {
preset: 'ts-jest',
verbose: true,
transform: {
'^.+\\.[j|t]sx?$': 'ts-jest',
'^.+\\.ts?$': 'ts-jest',
},
// see https://jestjs.io/docs/ecmascript-modules
// see https://jestjs.io/docs/configuration#extensionstotreatasesm-arraystring
// this seems very buggy
extensionsToTreatAsEsm: [".ts"],
globals: {
'ts-jest': {
useESM: true,
},
},
};
transformIgnorePatterns: ['<rootDir>/node_modules/'],
modulePathIgnorePatterns: ["<rootDir>/tests/kms"]
};
37 changes: 35 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
{
"name": "cosmian_js_lib",
"version": "1.0.2",
"version": "1.0.3",
"license": "MIT",
"description": "Cosmian javascript client library",
"main": "dist/lib.js",
"module": "dist/lib.js",
"types": "dist/lib.d.ts",
"author": "Bruno Grieder<[email protected]>, Pauline Hochard<[email protected]>",
"scripts": {
"test": "node --experimental-vm-modules node_modules/.bin/jest"
"test": "jest"
},
"dependencies": {
"@ccor/hello-wasm": "^0.1.0",
"abe_gpsw": "^0.8.0",
"axios": "^0.27.2",
"cover_crypt": "^3.1.0",
"js-crypto-hmac": "^1.0.4",
"leb128": "^0.0.5",
"cosmian_findex": "^0.4.0",
"reflect-metadata": "^0.1.13",
"tslint": "^6.1.3"
},
Expand Down
4 changes: 1 addition & 3 deletions src/crypto/abe/hybrid_crypto/cover_crypt/decryption.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
/* tslint:disable:max-classes-per-file */
import {
webassembly_decrypt_hybrid_block, webassembly_decrypt_hybrid_header, webassembly_get_encrypted_header_size
} from "../../../../../wasm_lib/abe/cover_crypt"
import { webassembly_decrypt_hybrid_block, webassembly_decrypt_hybrid_header, webassembly_get_encrypted_header_size } from "cover_crypt"
import { logger } from "../../../../utils/logger"
import { ClearTextHeader, HybridDecryption } from "../hybrid_crypto"

Expand Down
4 changes: 1 addition & 3 deletions src/crypto/abe/hybrid_crypto/cover_crypt/encryption.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import {
webassembly_encrypt_hybrid_block, webassembly_encrypt_hybrid_header
} from "../../../../../wasm_lib/abe/cover_crypt";
import { webassembly_encrypt_hybrid_block, webassembly_encrypt_hybrid_header } from "cover_crypt";
import { logger } from "../../../../utils/logger";
import { hexEncode } from "../../../../utils/utils";
import { AbeEncryptionParameters } from "../encryption_parameters";
Expand Down
2 changes: 1 addition & 1 deletion src/crypto/abe/hybrid_crypto/gpsw/decryption.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* tslint:disable:max-classes-per-file */
import {
webassembly_create_decryption_cache, webassembly_decrypt_hybrid_block, webassembly_decrypt_hybrid_header, webassembly_decrypt_hybrid_header_using_cache, webassembly_destroy_decryption_cache, webassembly_get_encrypted_header_size
} from "../../../../../wasm_lib/abe/gpsw/abe_gpsw"
} from "abe_gpsw"
import { logger } from "../../../../utils/logger"
import { ClearTextHeader, HybridDecryption } from "../hybrid_crypto"

Expand Down
2 changes: 1 addition & 1 deletion src/crypto/abe/hybrid_crypto/gpsw/encryption.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {
webassembly_create_encryption_cache, webassembly_destroy_encryption_cache, webassembly_encrypt_hybrid_block, webassembly_encrypt_hybrid_header, webassembly_encrypt_hybrid_header_using_cache
} from "../../../../../wasm_lib/abe/gpsw/abe_gpsw"
} from "abe_gpsw"
import { logger } from "../../../../utils/logger"
import { AbeEncryptionParameters } from "../encryption_parameters"
import { EncryptedHeader, HybridEncryption } from "../hybrid_crypto"
Expand Down
2 changes: 1 addition & 1 deletion src/crypto/abe/keygen/cover_crypt/cover_crypt_keygen.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* tslint:disable:max-classes-per-file */
import { webassembly_generate_master_keys, webassembly_generate_user_private_key, webassembly_rotate_attributes } from "../../../../../wasm_lib/abe/cover_crypt"
import { webassembly_generate_master_keys, webassembly_generate_user_private_key, webassembly_rotate_attributes } from "cover_crypt"
import { logger } from "../../../../utils/logger"
import { fromBeBytes } from "../../../../utils/utils"
import { AbeKeyGeneration, AbeMasterKey } from "../keygen"
Expand Down
2 changes: 1 addition & 1 deletion src/crypto/abe/keygen/gpsw/gpsw_crypt_keygen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
webassembly_generate_master_keys,
webassembly_generate_user_private_key,
webassembly_rotate_attributes
} from "../../../../../wasm_lib/abe/gpsw/abe_gpsw"
} from "abe_gpsw"
import { logger } from "../../../../utils/logger"
import { fromBeBytes, hexDecode } from "../../../../utils/utils"
import { AbeKeyGeneration, AbeMasterKey } from "../keygen"
Expand Down
Loading

0 comments on commit 9bb2789

Please sign in to comment.