-
Notifications
You must be signed in to change notification settings - Fork 3
171 lines (165 loc) · 5.79 KB
/
compile.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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
---
name: Compile
env:
ARTIFACT_PREFIX: ${{ inputs.artifact_prefix || 'mt' }}
INDI_COMMON_WORKDIR: ${{ vars.INDI_COMMON_WORKDIR || 'indicators-common' }}
REPOSITORY: EA31337/EA31337-indicators-common
SKIP_CLEANUP: ${{ inputs.skip_cleanup || false }}
# yamllint disable-line rule:truthy
on:
pull_request:
branches:
- 'master'
- '*dev*'
paths-ignore:
- '*.md'
- '.git*'
push:
branches:
- 'master'
- '*dev*'
paths-ignore:
- '*.md'
- '.git*'
workflow_call:
inputs:
artifact_prefix:
default: mt
description: Artifact prefix.
required: false
type: string
skip_cleanup:
default: false
description: Whether to skip a clean-up job.
required: false
type: boolean
jobs:
mt4:
name: Installs platform (4)
uses: EA31337/EA-Tester/.github/workflows/platform-linux.yml@dev
with:
artifact_name: ${{ inputs.artifact_prefix || 'mt' }}4
artifact_overwrite: true
skip_cleanup: true
version: 4
mt5:
name: Installs platform (5)
uses: EA31337/EA-Tester/.github/workflows/platform-linux.yml@dev
with:
artifact_name: ${{ inputs.artifact_prefix || 'mt' }}5
artifact_overwrite: true
skip_cleanup: true
version: 5
compile-platform-indicators:
defaults:
run:
shell: powershell
name: Compile platform indicators
needs: [mt4, mt5]
runs-on: windows-latest
strategy:
matrix:
version: [4, 5]
steps:
- uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
- name: Compile MQL
uses: fx31337/mql-compile-action@dev
with:
include: .
init-platform: true
mt-path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}/**/MQL?/Indicators
verbose: true
- name: Copy MQL to the current location
run: Copy-Item -Path ".${{ env.ARTIFACT_PREFIX }}*\*\*\MQL?" -Destination . -Recurse -Verbose
- name: List all source code files
run: '(Get-ChildItem -Recurse -Path "MQL?" -Include *.mq[45]).fullname'
- name: List compiled files
run: '(Get-ChildItem -Recurse -Path "MQL?" -Include *.ex[45]).fullname'
- name: Upload platform indicators
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: platform-indicators-mql${{ matrix.version }}
path: MQL?/**/*.[me][qx][45h]
- if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 20
compile-indicators:
defaults:
run:
shell: powershell
name: Compile indicators
needs: [compile-platform-indicators]
runs-on: windows-latest
strategy:
matrix:
version: [4, 5]
steps:
- uses: actions/checkout@v4
with:
path: ${{ env.INDI_COMMON_WORKDIR }}
ref: ${{ github.head_ref || github.ref_name }}
repository: EA31337/EA31337-indicators-common
- uses: actions/checkout@v4
with:
path: MQL4/Include/EA31337-classes
ref: v3.000.1
repository: EA31337/EA31337-classes
- uses: actions/checkout@v4
with:
path: MQL5/Include/EA31337-classes
ref: v3.000.1
repository: EA31337/EA31337-classes
- uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
- uses: actions/download-artifact@v4
with:
merge-multiple: true
pattern: platform-indicators-mql?
- name: List all source code files
run: '(Get-ChildItem -Recurse -Path . -Include *.mq[45]).fullname'
- name: List compiled files
run: '(Get-ChildItem -Recurse -Path . -Include *.ex[45]).fullname'
- name: Compile
uses: fx31337/mql-compile-action@master
with:
include: MQL5
mt-path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: ${{ env.INDI_COMMON_WORKDIR }}/**/*.mt5.mq${{ matrix.version }}
# yamllint disable-line rule:line-length
path-ignore: '**/{AC,AD,ADX,ADXW,Alligator,AO,Bears,Bulls,BB,BWMFI,CCI,CHO,CHV,DeMarker,DEMA,DPO,Envelopes,Force,FrAMA,Gator,MACD,MFI,MI,OsMA,RSI,StdDev,TEMA,TRIX,UOS}.{mt?.mq?,mq?}'
verbose: true
- name: Compile
uses: fx31337/mql-compile-action@master
with:
include: MQL${{ matrix.version }}
mt-path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: ${{ env.INDI_COMMON_WORKDIR }}/**/*.mq${{ matrix.version }}
# yamllint disable-line rule:line-length
path-ignore: '**/{AC,AD,ADX,ADXW,Alligator,AMA,AO,ASI,ATR,Bears,Bulls,BB,BWMFI,CCI,CHO,CHV,DeMarker,DEMA,DPO,Envelopes,Force,Fractals,FrAMA,Gator,HeikenAshi,Ichimoku,MACD,MA,MI,MFI,MOM,OBV,OsMA,PriceChannel,PVT,ROC,RSI,RVI,SAR,StdDev,Stochastic,TEMA,TRIX,UOS,VIDYA,VROC,Volumes,WAD,WPR,ZigZag}.{mt?.mq?,mq?}'
# path-ignore: '**/{Foo,{tests,Examples,Experts,Scripts}/**/*}.mq?'
verbose: true
- name: List compiled files
run: '(Get-ChildItem -Recurse -Path . -Include *.ex[45]).fullname'
- run: Get-Location
- name: Upload indicator artifacts
uses: actions/upload-artifact@v4
with:
name: indicators-common
path: ${{ env.INDI_COMMON_WORKDIR }}/**/*.ex[45]
timeout-minutes: 30
cleanup:
if: inputs.skip_cleanup != true
name: Clean-up
needs: [compile-indicators]
runs-on: ubuntu-latest
steps:
- uses: geekyeggo/delete-artifact@v5
with:
name: ${{ env.ARTIFACT_PREFIX }}*