-
Notifications
You must be signed in to change notification settings - Fork 58
133 lines (116 loc) · 3.59 KB
/
multimodal-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
name: Multimodal PR
on:
push:
branches: [ main ]
tags:
- '*'
pull_request:
branches: [ main ]
paths:
- "hi-ml-multimodal/**"
- ".github/workflows/multimodal-*.yml"
schedule:
- cron: "0 4 * * *" # every day at 4 AM UTC
env:
pythonVersion: "3.9"
folder: hi-ml-multimodal
HIML_TENANT_ID: ${{ secrets.HIML_TENANT_ID }}
HIML_RESOURCE_GROUP: ${{ secrets.HIML_RESOURCE_GROUP }}
HIML_SUBSCRIPTION_ID: ${{ secrets.HIML_SUBSCRIPTION_ID }}
HIML_WORKSPACE_NAME: ${{ secrets.HIML_WORKSPACE_NAME }}
HIML_SERVICE_PRINCIPAL_ID: ${{ secrets.HIML_SERVICE_PRINCIPAL_ID }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
multimodal-flake8:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Set up Python ${{ env.pythonVersion }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.pythonVersion }}
- name: flake8
run: |
cd ${{ env.folder }}
make pip_test
make flake8
multimodal-mypy:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Set up Python ${{ env.pythonVersion }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.pythonVersion }}
- name: mypy
run: |
cd ${{ env.folder }}
make pip
make mypy
multimodal-pytest:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Set up Python ${{ env.pythonVersion }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.pythonVersion }}
- name: Run tests and compute coverage
run: |
cd ${{ env.folder }}
make pip
make pytest_coverage
- name: Upload coverage reports to Codecov
# Coverage should also be uploaded even if tests fail
if: always()
uses: codecov/codecov-action@v3
with:
flags: ${{ env.folder }}
multimodal-notebooks:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Set up Python ${{ env.pythonVersion }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.pythonVersion }}
- name: Install test requirements
run: |
cd ${{ env.folder }}
make pip_test
- name: Run Jupyter notebook
run: |
cd ${{ env.folder }}
ipython kernel install --name "python3" --user
if [ -n "${{ github.event.pull_request }}" ]; then
REPO_FULL_NAME=${{ github.event.pull_request.head.repo.full_name }}
else
REPO_FULL_NAME="microsoft/hi-ml"
fi
REPO_URL="https://github.com/${REPO_FULL_NAME}.git"
SUBDIR_STR="subdirectory=${{ env.folder }}"
PIP_SOURCE="git+${REPO_URL}@${BRANCH_NAME}#${SUBDIR_STR}"
IN_NB_PATH="notebooks/phrase_grounding.ipynb"
OUT_NB_PATH="/tmp/phrase_grounding_output.ipynb"
echo "The package will be installed from: $PIP_SOURCE"
papermill \
--parameters pip_source $PIP_SOURCE \
--log-output \
$IN_NB_PATH \
$OUT_NB_PATH
multimodal-pr-completed:
runs-on: ubuntu-20.04
if: "!startsWith(github.ref, 'refs/tags/v')"
needs: [multimodal-flake8, multimodal-mypy, multimodal-pytest, multimodal-notebooks]
steps:
- name: Final PR Job
run: |
echo "All multimodal PR jobs have passed"