Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to Github Actions #90

Merged
merged 38 commits into from
Jan 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
b24c69c
wip new-ci
rolljee Dec 4, 2020
807e2cf
wip new ci
rolljee Dec 4, 2020
18b5d3c
use actions/checkout
rolljee Dec 7, 2020
8fb6ac0
wip CI
rolljee Dec 7, 2020
85bc298
Add deploy job only in master branch
rolljee Dec 7, 2020
78f2d77
Add jobs to CI
rolljee Dec 7, 2020
adf70a1
remove unused if check
rolljee Dec 7, 2020
eda6205
Nitpicking
rolljee Dec 7, 2020
95416d7
apply changes
rolljee Dec 7, 2020
e6c512f
Improve new ci
rolljee Dec 9, 2020
08f3686
rename folder in actions
rolljee Dec 9, 2020
8bcb227
wip kourou ci
rolljee Dec 10, 2020
01d24e7
Merge branch 'develop' of github.com:kuzzleio/kourou into feat/move-t…
rolljee Dec 10, 2020
541420a
merge develop
rolljee Dec 10, 2020
96f1e7c
remove option in tsconfig.json
rolljee Dec 10, 2020
adcf181
express need between build and tests
rolljee Dec 10, 2020
2030852
add missing env variable
rolljee Dec 10, 2020
05afd29
ci
rolljee Dec 10, 2020
41acbcf
add env var
rolljee Dec 10, 2020
9b287d7
Update ci
rolljee Dec 11, 2020
d4f944a
requested changes
rolljee Dec 14, 2020
be8977e
Name action steps
rolljee Dec 17, 2020
3249c5d
Put env in dedicated action file
rolljee Dec 21, 2020
de86ab8
Update .github/workflows/pull_request.workflow.yml
rolljee Dec 22, 2020
158a90c
Update .github/workflows/pull_request.workflow.yml
rolljee Dec 22, 2020
5a6409a
Update .github/workflows/pull_request.workflow.yml
rolljee Dec 22, 2020
b2becc7
Use Artifacts and better file organisation
alexandrebouthinon Jan 4, 2021
49038c8
Fix typo
alexandrebouthinon Jan 4, 2021
7731810
Fix typo in artifact path
alexandrebouthinon Jan 4, 2021
c6c92d6
Debug artifact download
alexandrebouthinon Jan 4, 2021
b7087ad
Fix artifact download and setup
alexandrebouthinon Jan 4, 2021
9a6ed61
Install only devDependencies to perform tests
alexandrebouthinon Jan 4, 2021
7ef3af4
Install all needed dependencies for tests
alexandrebouthinon Jan 4, 2021
63776ef
Try to copy features and test directory in uncompressed artifact
alexandrebouthinon Jan 4, 2021
0442d28
Copy MochaRC and NYCRC into artifact directory
alexandrebouthinon Jan 4, 2021
83ca8ea
Try to only install dev deps
alexandrebouthinon Jan 4, 2021
f24abdb
Perform last optimisations
alexandrebouthinon Jan 5, 2021
42348c8
Fix functional tests
alexandrebouthinon Jan 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Build
description: Run Build
runs:
using: "composite"
steps:
- name: Install deps
run: npm ci --silent
shell: bash
- name: Build and package the application
run: npm pack
shell: bash
11 changes: 11 additions & 0 deletions .github/actions/es-lint/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: ESLint
description: Run ESLint
runs:
using: "composite"
steps:
- name: Install deps
run: npm ci --silent
shell: bash
- name: Run lint tests
run: npm run --silent test:lint
shell: bash
16 changes: 16 additions & 0 deletions .github/actions/functional-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Functional Tests
description: Run Functional Tests
inputs:
test-set:
description: Test set to run
required: true
runs:
using: "composite"
steps:
- name: Run functional test
run: |
cd package
npm install --silent
features/run-kuzzle-stack.sh
npm run test:functional:${{ inputs.test-set }}
shell: bash
88 changes: 88 additions & 0 deletions .github/workflows/pull_request.workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Run tests

on: [pull_request]

jobs:
lint:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, Linting job should be executed before build. No need to build the app if the code doesn't pass linters successfully

name: Lint
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/es-lint

build:
name: Build
runs-on: ubuntu-18.04
needs: [lint]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/build
Aschen marked this conversation as resolved.
Show resolved Hide resolved
- name: Store build archive as artifact
uses: actions/upload-artifact@v2
with:
name: kourou-build
path: ./kourou-*.tgz

functional-test:
name: Functional Test - ${{ matrix.test-set }}
runs-on: ubuntu-18.04
needs: [build]
strategy:
matrix:
test-set: [stdout, cucumber]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
NODE_ENV: test
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- name: Recover previously built Kourou
uses: actions/download-artifact@v2
with:
name: kourou-build
- name: Unpack and prepare artifact for tests
run: |
tar xfz ./kourou-*.tgz
cp -fr .mocharc.json .nycrc tsconfig.json features test package/
- uses: ./.github/actions/functional-test
with:
test-set: ${{ matrix.test-set }}
91 changes: 91 additions & 0 deletions .github/workflows/push_dev.workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Run tests

on:
push:
branches:
- develop

jobs:
lint:
name: Lint
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/es-lint

build:
name: Build
runs-on: ubuntu-18.04
needs: [lint]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/build
- name: Store build archive as artifact
uses: actions/upload-artifact@v2
with:
name: kourou-build
path: ./kourou-*.tgz

functional-test:
name: Functional Test - ${{ matrix.test-set }}
runs-on: ubuntu-18.04
needs: [build]
strategy:
matrix:
test-set: [stdout, cucumber]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
NODE_ENV: test
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- name: Recover previously built Kourou
uses: actions/download-artifact@v2
with:
name: kourou-build
- name: Unpack and prepare artifact for tests
run: |
tar xfz ./kourou-*.tgz
cp -fr .mocharc.json .nycrc tsconfig.json features test package/
- uses: ./.github/actions/functional-test
with:
test-set: ${{ matrix.test-set }}
106 changes: 106 additions & 0 deletions .github/workflows/push_master.workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: Run tests

on:
push:
branches:
- master

jobs:
lint:
name: Lint
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/es-lint

build:
name: Build
runs-on: ubuntu-18.04
needs: [lint]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- uses: ./.github/actions/build
- name: Store build archive as artifact
uses: actions/upload-artifact@v2
with:
name: kourou-build
path: ./kourou-*.tgz

functional-test:
name: Functional Test - ${{ matrix.test-set }}
runs-on: ubuntu-18.04
needs: [build]
strategy:
matrix:
test-set: [stdout, cucumber]
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
NODE_ENV: test
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- uses: actions/setup-node@v1.4.4
with:
node-version: 12
- name: Recover previously built Kourou
uses: actions/download-artifact@v2
with:
name: kourou-build
- name: Unpack and prepare artifact for tests
run: |
tar xfz ./kourou-*.tgz
cp -fr .mocharc.json .nycrc tsconfig.json features test package/
- uses: ./.github/actions/functional-test
with:
test-set: ${{ matrix.test-set }}

deploy:
name: Deploy to NPM.js
runs-on: ubuntu-18.04
needs: [functional-test]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: "https://registry.npmjs.org"
- run: npm install
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Loading