-
-
Notifications
You must be signed in to change notification settings - Fork 61
138 lines (115 loc) · 3.06 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: CI
on:
push:
branches:
- master
paths-ignore:
- '**.md'
pull_request:
branches:
- master
paths-ignore:
- '**.md'
jobs:
node:
name: Node.js (${{matrix.node_version_file}})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node_version_file:
- .nvmrc
- package.json
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js from ${{matrix.node_version_file}} file
uses: actions/setup-node@v4
with:
node-version-file: ${{matrix.node_version_file}}
cache: npm
cache-dependency-path: 'package-lock.json'
- name: Install modules from package.json
run: npm clean-install --ignore-scripts
- name: Run postinstall scripts
run: npm run postinstall
- name: Run tests
run: npm run test:js
# node_active_versions:
# name: Node ${{ matrix.node_version }}
# runs-on: ubuntu-latest
# continue-on-error: ${{ matrix.node_version == 'current' }}
#
# strategy:
# fail-fast: false
# matrix:
# node_version:
# - lts/-1
# - lts/*
# - current
#
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
#
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: ${{ matrix.node_version }}
# cache: npm
# cache-dependency-path: 'package-lock.json'
#
# - name: Install package.json
# run: npm clean-install --ignore-scripts
#
# - name: Run postinstall scripts
# run: npm run postinstall
#
# - name: Run tests
# run: npm run test:js
docker:
name: Docker
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build image from Dockerfile
run: docker build --tag dr4ft-app .
- name: Run container from image
run: docker run --detach --name dr4ft -p 1337:1337 dr4ft-app
# TODO: Extend this and test e.g. creating a game via API
- name: Access dr4ft page
run: wget http://localhost:1337
- name: Show information
run: |
docker --version
echo
docker images dr4ft-app
echo
docker ps
echo
echo "Node version (dr4ft-app image)"
docker run dr4ft-app node --version
echo
docker top dr4ft
lint:
name: ESLint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js from .nvmrc file
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: npm
- name: Install ESLint
run: npm clean-install eslint --ignore-scripts
- name: Run ESLint
run: |
echo "Node version"
node --version
echo "ESLint version"
npx eslint --version
npm run lint