-
Notifications
You must be signed in to change notification settings - Fork 1
157 lines (123 loc) · 4.89 KB
/
tests.yaml
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Tests
on:
workflow_dispatch:
pull_request:
branches:
- main
jobs:
tests:
name: Tests
runs-on: ubuntu-22.04
steps:
###################################################
#
# Prepare
#
###################################################
# https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
- name: (PREPARE) Free space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache
- name: (PREPARE) Set up QEMU
uses: docker/setup-qemu-action@v2
- name: (PREPARE) Checkout Repository
uses: actions/checkout@v3
with:
lfs: true
- name: (PREPARE) Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.15.0
cache: yarn
- name: (PREPARE) Install Node Modules
run: ./task install
- name: (PREPARE) Build Tasks
run: ./task tasks:build
- name: (PREPARE) Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.10.13
cache: pip
- name: (PREPARE) Cache xOpera
uses: actions/cache@v3
with:
path: /home/runner/opera
key: xopera
- name: (PREPARE) Install xOpera
run: ./src/assets/scripts/install-xopera.sh
- name: (PREPARE) Build Project
run: ./task build
- name: (PREPARE) Pull Example Dependencies
run: ./task examples:pull
###################################################
#
# Test
#
###################################################
- name: (TEST) Check ESLint
run: ./task lint:check
- name: (TEST) Check Prettier
run: ./task style:check
- name: (TEST) Check Dependencies
run: ./task licenses:check
- name: (TEST) Check Service Templates
run: ./task puccini:check
- name: (TEST) Run Tests
run: ./task test
###################################################
#
# Package
#
###################################################
- name: (PACKAGE) Setup Packaging Cache
uses: actions/cache@v3
with:
path: ~/.pkg-cache
key: pkg
- name: (PACKAGE) Package Binaries
run: ./task package
- name: (PACKAGE) Compress Examples
run: tar -czvf ./dist/examples.tar.gz -C examples .
###################################################
#
# Docker
#
###################################################
- name: (DOCKER) Set up Docker Buildx
uses: docker/setup-buildx-action@v3.0.0
- name: (DOCKER) Log in to the container registry
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: (DOCKER) Build Docker image
uses: docker/build-push-action@v5.0.0
with:
context: .
file: docker/Dockerfile
tags: ghcr.io/opentosca/opentosca-vintner:${{ github.sha }}
cache-from: type=registry,ref=ghcr.io/opentosca/opentosca-vintner:buildcache
cache-to: type=registry,ref=ghcr.io/opentosca/opentosca-vintner:buildcache,mode=max
###################################################
#
# Docs
#
###################################################
- name: (DOCS) Install Dependencies
run: ./task docs:install
- name: (DOCS) Generate Dependencies Page
run: ./task docs:generate:dependencies
- name: (DOCS) Generate Interface Page
run: ./task docs:generate:interface
- name: (DOCS) Generate Variability4TOSCA Conformance Test Pages
run: ./task docs:generate:variability
- name: (DOCS) Generate Queries4TOSCA Conformance Test Pages
run: ./task docs:generate:query
- name: (DOCS) Generate TOSCA SofDCar Profile Page
run: ./task docs:generate:sofdcar
- name: (DOCS) Build Docs
run: ./task docs:build