diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..76f71ab5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -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 . diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 555c6212..00000000 --- a/.travis.yml +++ /dev/null @@ -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 . diff --git a/Dockerfile b/Dockerfile index e73f9b1a..4b3d36de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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} diff --git a/docker-compose.yml b/docker-compose.yml index fe8ed153..945494d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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