bf070c33b5
The ts-proto lib has the huge advantage of producing code the "Typescript" way and not the "Java" way. In particular, for "oneof" types in protobuf, it is generating "ADT" that can be used to check if we forgot or not to deal with a type.
166 lines
3.7 KiB
YAML
166 lines
3.7 KiB
YAML
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
|
|
|
|
name: "Continuous Integration"
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- develop
|
|
pull_request:
|
|
|
|
jobs:
|
|
|
|
continuous-integration-front:
|
|
name: "Continuous Integration Front"
|
|
|
|
runs-on: "ubuntu-latest"
|
|
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: "actions/checkout@v2.0.0"
|
|
|
|
- name: "Setup NodeJS"
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v1
|
|
with:
|
|
version: '3.x'
|
|
|
|
- name: "Install dependencies"
|
|
run: yarn install
|
|
working-directory: "front"
|
|
|
|
- name: "Install messages dependencies"
|
|
run: yarn install
|
|
working-directory: "messages"
|
|
|
|
- name: "Build proto messages"
|
|
run: yarn run ts-proto && yarn run copy-to-front-ts-proto && yarn run json-copy-to-front
|
|
working-directory: "messages"
|
|
|
|
- name: "Create index.html"
|
|
run: ./templater.sh
|
|
working-directory: "front"
|
|
|
|
- name: "Build"
|
|
run: yarn run build
|
|
env:
|
|
PUSHER_URL: "//localhost:8080"
|
|
ADMIN_URL: "//localhost:80"
|
|
working-directory: "front"
|
|
|
|
- name: "Svelte check"
|
|
run: yarn run svelte-check
|
|
working-directory: "front"
|
|
|
|
- name: "Lint"
|
|
run: yarn run lint
|
|
working-directory: "front"
|
|
|
|
- name: "Pretty"
|
|
run: yarn run pretty-check
|
|
working-directory: "front"
|
|
|
|
- name: "Jasmine"
|
|
run: yarn test
|
|
working-directory: "front"
|
|
|
|
continuous-integration-pusher:
|
|
name: "Continuous Integration Pusher"
|
|
|
|
runs-on: "ubuntu-latest"
|
|
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: "actions/checkout@v2.0.0"
|
|
|
|
- name: "Setup NodeJS"
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v1
|
|
with:
|
|
version: '3.x'
|
|
|
|
- name: "Install dependencies"
|
|
run: yarn install
|
|
working-directory: "pusher"
|
|
|
|
- name: "Install messages dependencies"
|
|
run: yarn install
|
|
working-directory: "messages"
|
|
|
|
- name: "Build proto messages"
|
|
run: yarn run proto && yarn run copy-to-pusher && yarn run json-copy-to-pusher
|
|
working-directory: "messages"
|
|
|
|
- name: "Build"
|
|
run: yarn run tsc
|
|
working-directory: "pusher"
|
|
|
|
- name: "Lint"
|
|
run: yarn run lint
|
|
working-directory: "pusher"
|
|
|
|
- name: "Jasmine"
|
|
run: yarn test
|
|
working-directory: "pusher"
|
|
|
|
- name: "Prettier"
|
|
run: yarn run pretty-check
|
|
working-directory: "pusher"
|
|
|
|
continuous-integration-back:
|
|
name: "Continuous Integration Back"
|
|
|
|
runs-on: "ubuntu-latest"
|
|
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: "actions/checkout@v2.0.0"
|
|
|
|
- name: "Setup NodeJS"
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '12.x'
|
|
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v1
|
|
with:
|
|
version: '3.x'
|
|
|
|
- name: "Install dependencies"
|
|
run: yarn install
|
|
working-directory: "back"
|
|
|
|
- name: "Install messages dependencies"
|
|
run: yarn install
|
|
working-directory: "messages"
|
|
|
|
- name: "Build proto messages"
|
|
run: yarn run proto && yarn run copy-to-back
|
|
working-directory: "messages"
|
|
|
|
- name: "Build"
|
|
run: yarn run tsc
|
|
working-directory: "back"
|
|
|
|
- name: "Lint"
|
|
run: yarn run lint
|
|
working-directory: "back"
|
|
|
|
- name: "Jasmine"
|
|
run: yarn test
|
|
working-directory: "back"
|
|
|
|
- name: "Prettier"
|
|
run: yarn run pretty-check
|
|
working-directory: "back"
|
|
|