Skip to content

Commit c3c8b79

Browse files
author
Alexander Bainczyk
committed
Merge branch 'developer'
2 parents 6038c8c + 9707048 commit c3c8b79

File tree

1,398 files changed

+88003
-50995
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,398 files changed

+88003
-50995
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: build-and-deply
2+
description: build and deploy docker images
3+
4+
inputs:
5+
username:
6+
description: 'GitHub username'
7+
required: true
8+
password:
9+
description: 'GitHub password'
10+
required: true
11+
context:
12+
description: 'Docker build context'
13+
required: true
14+
tag:
15+
description: 'Docker image name'
16+
required: true
17+
18+
runs:
19+
using: "composite"
20+
steps:
21+
- name: Build Docker Image
22+
shell: bash
23+
run: docker build ${{ inputs.context }} --file ${{ inputs.context }}/Dockerfile --tag ${{ inputs.tag }}
24+
25+
- name: Login to GitHub Container Registry
26+
shell: bash
27+
run: echo "${{ inputs.password }}" | docker login https://ghcr.io -u ${{ inputs.username }} --password-stdin
28+
29+
- name: Push to GitHub Container Registry
30+
shell: bash
31+
run: |
32+
IMAGE_ID=ghcr.io/learnlib/alex/${{ inputs.tag }}
33+
BRANCH=${GITHUB_REF#"refs/heads/"}
34+
VERSION=
35+
36+
if [ "$BRANCH" == "developer" ]
37+
then
38+
VERSION="unstable"
39+
elif [ "$BRANCH" == "master" ]
40+
then
41+
VERSION="latest"
42+
else
43+
VERSION="$GITHUB_SHA"
44+
fi
45+
46+
docker tag ${{ inputs.tag }} $IMAGE_ID:$VERSION
47+
docker push $IMAGE_ID:$VERSION

.github/workflows/ci.yml

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- developer
7+
- master
8+
pull_request:
9+
branches:
10+
- developer
11+
- master
12+
13+
jobs:
14+
build-backend:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v2
18+
- name: Set up JDK 15
19+
uses: actions/setup-java@v1
20+
with:
21+
java-version: 15
22+
- name: Build with Maven
23+
run: mvn clean install -DskipTests package --file ./backend/pom.xml
24+
25+
lint-backend:
26+
needs: build-backend
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v2
30+
- uses: actions/setup-java@v1
31+
with:
32+
java-version: 15
33+
- name: Lint Java Code
34+
run: mvn checkstyle:checkstyle -Pcode-analysis --file ./backend/pom.xml
35+
36+
analyse-backend:
37+
needs: build-backend
38+
runs-on: ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v2
41+
- uses: actions/setup-java@v1
42+
with:
43+
java-version: 15
44+
- name: Analyse Java Code for bugs
45+
run: mvn install -DskipTests --file ./backend/pom.xml && mvn spotbugs:check -Pcode-analysis --file ./backend/pom.xml
46+
47+
test-unit-backend:
48+
needs: [lint-backend, analyse-backend]
49+
runs-on: ubuntu-latest
50+
steps:
51+
- uses: actions/checkout@v2
52+
- name: Set up JDK 15
53+
uses: actions/setup-java@v1
54+
with:
55+
java-version: 15
56+
- name: Run unit tests with Maven
57+
run: mvn clean test --file ./backend/pom.xml
58+
59+
test-integration-backend:
60+
needs: test-unit-backend
61+
runs-on: ubuntu-latest
62+
steps:
63+
- uses: actions/checkout@v2
64+
- name: Set up JDK 15
65+
uses: actions/setup-java@v1
66+
with:
67+
java-version: 15
68+
- name: Run integration tests with Maven
69+
run: mvn clean verify -Dsurefire.skip=true --file ./backend/pom.xml
70+
71+
package-backend:
72+
needs: test-integration-backend
73+
runs-on: ubuntu-latest
74+
if: github.event_name == 'push'
75+
steps:
76+
- uses: actions/checkout@v2
77+
- name: Push backend to GitHub repositories
78+
uses: ./.github/actions/build-and-deploy
79+
with:
80+
username: ${{ github.actor }}
81+
password: ${{ secrets.CR_PAT }}
82+
context: ./backend
83+
tag: alex-backend
84+
85+
lint-frontend:
86+
runs-on: ubuntu-latest
87+
steps:
88+
- uses: actions/checkout@v2
89+
- name: Lint TypeScript code
90+
uses: actions/setup-node@v2
91+
with:
92+
node-version: '14'
93+
- run: cd ./frontend && npm ci && npm run lint
94+
95+
test-unit-frontend:
96+
needs: lint-frontend
97+
runs-on: ubuntu-latest
98+
steps:
99+
- uses: actions/checkout@v2
100+
- name: Run Angular unit tests
101+
uses: actions/setup-node@v2
102+
with:
103+
node-version: '14'
104+
- run: cd ./frontend && npm ci && npm run test -- --no-watch --no-progress --browsers=ChromeHeadlessCI
105+
106+
package-frontend:
107+
needs: test-unit-frontend
108+
runs-on: ubuntu-latest
109+
if: github.event_name == 'push'
110+
steps:
111+
- uses: actions/checkout@v2
112+
- name: Push frontend to GitHub repositories
113+
uses: ./.github/actions/build-and-deploy
114+
with:
115+
username: ${{ github.actor }}
116+
password: ${{ secrets.CR_PAT }}
117+
context: ./frontend
118+
tag: alex-frontend
119+
120+
package-cli:
121+
runs-on: ubuntu-latest
122+
if: github.event_name == 'push'
123+
steps:
124+
- uses: actions/checkout@v2
125+
- name: Push CLI to GitHub repositories
126+
uses: ./.github/actions/build-and-deploy
127+
with:
128+
username: ${{ github.actor }}
129+
password: ${{ secrets.CR_PAT }}
130+
context: ./cli
131+
tag: alex-cli
132+
133+
build-docs:
134+
runs-on: ubuntu-latest
135+
steps:
136+
- uses: actions/checkout@v2
137+
- name: Build docs
138+
uses: actions/setup-node@v2
139+
with:
140+
node-version: '14'
141+
- run: cd ./docs && npm install -g npm && npm ci && npm run build
142+
143+
package-docs:
144+
needs: build-docs
145+
runs-on: ubuntu-latest
146+
if: github.event_name == 'push'
147+
steps:
148+
- uses: actions/checkout@v2
149+
- name: Push docs to GitHub repositories
150+
uses: ./.github/actions/build-and-deploy
151+
with:
152+
username: ${{ github.actor }}
153+
password: ${{ secrets.CR_PAT }}
154+
context: ./docs
155+
tag: alex-docs

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [created]
6+
7+
jobs:
8+
release-cli-to-npm:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
13+
- uses: actions/setup-node@v1
14+
with:
15+
node-version: 14
16+
registry-url: https://registry.npmjs.org/
17+
- run: cd cli
18+
- run: npm ci
19+
- run: npm publish
20+
env:
21+
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
22+
23+
tag-docker-images:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Login to GitHub Container Registry
27+
run: echo "${{ inputs.password }}" | docker login https://ghcr.io -u ${{ inputs.username }} --password-stdin
28+
29+
- name: Tag latest images with release version
30+
run: |
31+
VERSION="2.1.0"
32+
IMAGES="alex-frontend alex-backend alex-cli alex-docs"
33+
34+
for img in $IMAGES
35+
do
36+
echo "ghcr.io/learnlib/alex/$img:$VERSION"
37+
docker pull "ghcr.io/learnlib/alex/$img:unstable"
38+
docker tag "ghcr.io/learnlib/alex/$img:unstable" "ghcr.io/learnlib/alex/$img:$VERSION"
39+
docker tag "ghcr.io/learnlib/alex/$img:unstable" "ghcr.io/learnlib/alex/$img:latest"
40+
docker push "ghcr.io/learnlib/alex/$img:$VERSION"
41+
docker push "ghcr.io/learnlib/alex/$img:latest"
42+
done

.gitignore

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ frontend/src/main/javascript/node_modules
1818
frontend/src/main/javascript/dist
1919
frontend/src/main/javascript/test/coverage
2020
frontend/src/main/javascript/npm-debug\.log
21-
frontend/src/main/javascript/dist
2221

2322
# uploaded files
2423
main/uploads
25-
26-
# genereated user documentation
27-
documentation/src/main/docs/.vuepress/dist
28-
documentation/src/main/docs/node_modules

.resources/code-style-intellij.xml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<code_scheme name="ALEX" version="173">
2+
<JavaCodeStyleSettings>
3+
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
4+
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
5+
<option name="IMPORT_LAYOUT_TABLE">
6+
<value>
7+
<package name="" withSubpackages="true" static="true" />
8+
<emptyLine />
9+
<package name="com" withSubpackages="true" static="false" />
10+
<package name="de" withSubpackages="true" static="false" />
11+
<package name="io" withSubpackages="true" static="false" />
12+
<package name="java" withSubpackages="true" static="false" />
13+
<package name="javax" withSubpackages="true" static="false" />
14+
<package name="net" withSubpackages="true" static="false" />
15+
<package name="org" withSubpackages="true" static="false" />
16+
<package name="" withSubpackages="true" static="false" />
17+
</value>
18+
</option>
19+
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
20+
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
21+
<option name="JD_KEEP_INVALID_TAGS" value="false" />
22+
<option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
23+
<option name="JD_PARAM_DESCRIPTION_ON_NEW_LINE" value="true" />
24+
</JavaCodeStyleSettings>
25+
<TypeScriptCodeStyleSettings version="0">
26+
<option name="USE_DOUBLE_QUOTES" value="false" />
27+
<option name="FORCE_QUOTE_STYlE" value="true" />
28+
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
29+
<option name="SPACES_WITHIN_IMPORTS" value="true" />
30+
</TypeScriptCodeStyleSettings>
31+
<codeStyleSettings language="HTML">
32+
<indentOptions>
33+
<option name="INDENT_SIZE" value="2" />
34+
<option name="CONTINUATION_INDENT_SIZE" value="4" />
35+
<option name="TAB_SIZE" value="2" />
36+
</indentOptions>
37+
</codeStyleSettings>
38+
<codeStyleSettings language="JAVA">
39+
<option name="RIGHT_MARGIN" value="140" />
40+
<option name="IF_BRACE_FORCE" value="3" />
41+
<option name="DOWHILE_BRACE_FORCE" value="3" />
42+
<option name="WHILE_BRACE_FORCE" value="3" />
43+
<option name="FOR_BRACE_FORCE" value="3" />
44+
</codeStyleSettings>
45+
<codeStyleSettings language="JavaScript">
46+
<indentOptions>
47+
<option name="INDENT_SIZE" value="2" />
48+
<option name="CONTINUATION_INDENT_SIZE" value="2" />
49+
<option name="TAB_SIZE" value="2" />
50+
</indentOptions>
51+
</codeStyleSettings>
52+
<codeStyleSettings language="TypeScript">
53+
<indentOptions>
54+
<option name="INDENT_SIZE" value="2" />
55+
<option name="CONTINUATION_INDENT_SIZE" value="2" />
56+
<option name="TAB_SIZE" value="2" />
57+
</indentOptions>
58+
</codeStyleSettings>
59+
</code_scheme>

.travis.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

.travis/settings.xml

Lines changed: 0 additions & 9 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
# ALEX 2.1.0
2+
3+
## Breaking Changes
4+
5+
* Use Docker for development and production versions of ALEX.
6+
The standalone build is no longer supported.
7+
* Due to the previous point, the web drivers have been removed.
8+
It is only possible to set the URL to a Selenium Hub.
9+
10+
## Features
11+
12+
* See which symbols and tests are used by other users in a project
13+
* Export formula suites while exporting a project
14+
* Export learner setups while exporting a project
15+
* Automated model checking of learned models
16+
* Associate LTL formula suites with a learner setup
17+
118
# ALEX 2.0.0
219

320
## Fixes

0 commit comments

Comments
 (0)