-
Notifications
You must be signed in to change notification settings - Fork 5
170 lines (163 loc) · 5.28 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
---
name: Compile
# Setting an environment variable with the value of a configuration variable.
env:
ARTIFACT_PREFIX: ${{ inputs.artifact_prefix || 'mt' }}
# yamllint disable-line rule:line-length
CHECKOUT_BRANCH: ${{ inputs.checkout_branch || github.head_ref || github.ref_name }}
INDI_OTHER_WORKDIR: ${{ vars.INDI_OTHER_WORKDIR || 'indicators-other' }}
REPOSITORY: EA31337/EA31337-indicators-other
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
checkout_branch:
default: ${{ github.head_ref || github.ref_name }}
description: Checkout branch
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 }}
# yamllint disable-line rule:line-length
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: ${{ env.ARTIFACT_PREFIX }}-indicators-ex${{ 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_OTHER_WORKDIR }}
ref: ${{ env.CHECKOUT_BRANCH }}
repository: EA31337/EA31337-indicators-other
- uses: actions/checkout@v4
with:
path: MQL${{ matrix.version}}/Include/EA31337-classes
ref: v3.000.2
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: ${{ env.ARTIFACT_PREFIX }}-indicators-ex?
- 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: MQL${{ matrix.version }}
mt-path: .${{ env.ARTIFACT_PREFIX }}${{ matrix.version }}
path: ${{ env.INDI_OTHER_WORKDIR }}/**/*.mq${{ matrix.version }}
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:
# yamllint disable-line rule:line-length
name: ${{ env.ARTIFACT_PREFIX }}-indicators-other-ex${{ matrix.version }}
path: ${{ env.INDI_OTHER_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 }}*