# 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: "Generate i18n files" run: yarn run typesafe-i18n working-directory: "front" - name: "Build" run: yarn run build env: PUSHER_URL: "//localhost:8080" ADMIN_URL: "//localhost:80" working-directory: "front" - name: "Build iframe-api" run: yarn run build-iframe-api working-directory: "front" - name: "Typecheck" run: yarn run typecheck 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" continuous-integration-desktop: name: "Continuous Integration Desktop" 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 dependencies" run: yarn install --froze-lockfile working-directory: "desktop/electron" - name: "Build" run: yarn build working-directory: "desktop/electron" - name: "Typecheck" run: yarn typecheck working-directory: "desktop/electron" - name: "Lint" run: yarn lint working-directory: "desktop/electron" - name: "Jasmine" run: yarn test working-directory: "desktop/electron" - name: "Prettier" run: yarn pretty-check working-directory: "desktop/electron" continuous-integration-desktop-local-app: name: "Continuous Integration Desktop Local App" 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 dependencies" run: yarn install --froze-lockfile working-directory: "desktop/local-app" - name: "Build" run: yarn build working-directory: "desktop/local-app" - name: "Typecheck" run: yarn check working-directory: "desktop/local-app" - name: "Lint" run: yarn lint working-directory: "desktop/local-app" - name: "Jasmine" run: yarn test working-directory: "desktop/local-app" - name: "Prettier" run: yarn pretty-check working-directory: "desktop/local-app"