Created workflow for ci in github actions

This commit is contained in:
Alejandro Celaya 2020-12-12 21:29:25 +01:00
parent 16ce1d24af
commit 20f2fd1080
4 changed files with 61 additions and 46 deletions

59
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,59 @@
name: Continuous integration
on:
pull_request: null
push:
branches:
- main
jobs:
lint:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use node.js 14.15
uses: actions/setup-node@v1
with:
node-version: 14.15
- run: npm ci
- run: npm run lint
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use node.js 14.15
uses: actions/setup-node@v1
with:
node-version: 14.15
- run: npm ci
- run: npm run test:ci
- run: node_modules/.bin/ocular coverage/clover.xml
mutation-tests:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Use node.js 14.15
uses: actions/setup-node@v1
with:
node-version: 14.15
- run: npm ci
- run: echo "Building commit range ${TRAVIS_COMMIT_RANGE}"
- run: MUTATION_FILES=$(git diff ${TRAVIS_COMMIT_RANGE:-origin/main} --name-only | grep -E 'src\/(.*).(ts|tsx)$' | paste -sd ",") npm run mutate:ci
build-docker-image:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
version: latest
- run: docker build -t shlink-web-client:test .

View file

@ -1,44 +0,0 @@
dist: bionic
language: node_js
branches:
only:
- /.*/
cache:
directories:
- node_modules
node_js:
- '14.15.0'
jobs:
fast_finish: true
allow_failures:
- name: 'Lint'
- name: 'Mutation tests'
include:
- name: 'Lint'
install: npm ci
script: npm run lint
- name: 'Unit tests'
install: npm ci
script: npm run test:ci
after_success:
- node_modules/.bin/ocular coverage/clover.xml
- name: 'Mutation tests'
install: npm ci
before_script:
- echo "Building commit range ${TRAVIS_COMMIT_RANGE}"
- export MUTATION_FILES=$(git diff ${TRAVIS_COMMIT_RANGE:-origin/main} --name-only | grep -E 'src\/(.*).(ts|tsx)$' | paste -sd ",")
script: npm run mutate:ci
- name: 'Build docker image'
services:
- docker
install: skip
script: docker build -t shlink-web-client:test .

View file

@ -1,4 +1,4 @@
FROM node:14.15.0-alpine as node
FROM node:14.15-alpine as node
COPY . /shlink-web-client
ARG VERSION="latest"
ENV VERSION ${VERSION}

View file

@ -3,7 +3,7 @@ version: '3'
services:
shlink_web_client_node:
container_name: shlink_web_client_node
image: node:14.15.0-alpine
image: node:14.15-alpine
command: /bin/sh -c "cd /home/shlink/www && npm install && npm run start"
volumes:
- ./:/home/shlink/www