-
Notifications
You must be signed in to change notification settings - Fork 3
136 lines (130 loc) · 4.98 KB
/
test-pr.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
name: 'Run Tests'
on:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
version-bump:
name: 'Version Bump'
runs-on: [self-hosted, linux, flyweight-ephemeral]
steps:
- name: 'Check out code'
uses: actions/checkout@v3
with:
token: ${{ secrets.JENKINS_GITHUB_PAT }}
# fetch-depth 0 means deep clone the repo
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: 'Configure GitHub user'
run: |
git config user.name devops
git config user.email devops@runtimeverification.com
- name: 'Update version'
run: |
og_version=$(git show origin/${GITHUB_BASE_REF}:package/version)
./package/version.sh bump ${og_version}
./package/version.sh sub
new_version=$(cat package/version)
git add --update && git commit --message "Set Version: ${new_version}" || true
- name: 'Push updates'
run: git push origin HEAD:${GITHUB_HEAD_REF}
python-code-quality-checks:
name: 'Code Quality Checks'
runs-on: ubuntu-latest
steps:
- name: 'Check out code'
uses: actions/checkout@v3
with:
submodules: recursive
- name: 'Install Poetry'
uses: Gr1N/setup-poetry@v8
- name: 'Build kmultiversx'
run: make kmultiversx
- name: 'Run code quality checks'
run: make -C kmultiversx check
tests:
runs-on: [self-hosted, linux, normal]
name: 'Tests'
timeout-minutes: 45
steps:
- name: 'Check out code'
uses: actions/checkout@v3
with:
submodules: recursive
- name: 'Set up Docker'
uses: ./.github/actions/with-docker
with:
container-name: elrond-semantics-ci-${{ github.sha }}
- name: 'Build kmultiversx'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make kmultiversx
- name: 'Build K definitions'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make build-all
- name: 'KMultiversX Tests'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make -C kmultiversx test
- name: 'Simple Tests'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-simple -j6
- name: 'Mandos Tests'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make mandos-test -j6
- name: 'TestApi tests'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-testapi
- name: 'Contract Test: Adder'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-adder
- name: 'Contract Test: Crowdfunding ESDT'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-crowdfunding-esdt
- name: 'Contract Test: Multisig'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-multisig
- name: 'Contract Test: NFT Minter'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-nft-minter
- name: 'Contract Tests: Custom'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-custom-contracts
- name: 'Tear down Docker'
if: always()
run: |
docker stop --time=0 elrond-semantics-ci-${GITHUB_SHA}
feature-tests:
runs-on: [self-hosted, linux, normal]
name: 'Feature Tests'
timeout-minutes: 45
steps:
- name: 'Check out code'
uses: actions/checkout@v3
with:
submodules: recursive
- name: 'Set up Docker'
uses: ./.github/actions/with-docker
with:
container-name: elrond-semantics-ci-${{ github.sha }}
- name: 'Build kmultiversx'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make kmultiversx
- name: 'Build K definition'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make build
- name: 'Feature Test: Basic'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-basic-features -j6
- name: 'Feature Test: Alloc'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-alloc-features -j6
- name: 'Feature Test: Composability'
run: docker exec -t elrond-semantics-ci-${GITHUB_SHA} make test-elrond-composability-features -j6
- name: 'Tear down Docker'
if: always()
run: |
docker stop --time=0 elrond-semantics-ci-${GITHUB_SHA}
nix:
name: 'Build using Nix'
strategy:
fail-fast: false
matrix:
include:
- runner: normal
- runner: ARM64
runs-on: ${{ matrix.runner }}
timeout-minutes: 60
steps:
- name: 'Check out code'
uses: actions/checkout@v3
with:
# Check out pull request HEAD instead of merge commit.
ref: ${{ github.event.pull_request.head.sha }}
- name: 'Build KMultiversX'
run: GC_DONT_GC=1 nix build .#kmultiversx --extra-experimental-features 'nix-command flakes' --print-build-logs