@@ -99,14 +99,29 @@ jobs:
9999 - name : Set up pandas
100100 uses : ./.github/actions/setup
101101
102+ # Github workflows built-in path filters
103+ # don't work on a level of individual jobs or steps.
104+ # So, we use this.
105+ - uses : dorny/paths-filter@v2
106+ id : changes
107+ with :
108+ filters : |
109+ doc :
110+ - ' doc/**'
111+ web :
112+ - ' web/**'
113+
102114 - name : Build website
103115 run : |
104116 source activate pandas-dev
105117 python web/pandas_web.py web/pandas --target-path=web/build
118+ if : steps.changes.outputs.web == 'true'
119+
106120 - name : Build documentation
107121 run : |
108122 source activate pandas-dev
109123 doc/make.py --warnings-are-errors | tee sphinx.log ; exit ${PIPESTATUS[0]}
124+ if : steps.changes.outputs.doc == 'true'
110125
111126 # This can be removed when the ipython directive fails when there are errors,
112127 # including the `tee sphinx.log` in te previous step (https://github.com/ipython/ipython/issues/11547)
@@ -123,14 +138,15 @@ jobs:
123138
124139 - name : Upload web
125140 run : rsync -az --delete --exclude='pandas-docs' --exclude='docs' --exclude='Pandas_Cheat_Sheet*' web/build/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas
126- if : github.event_name == 'push'
141+ if : ${{ github.event_name == 'push' && steps.changes.outputs.web == 'true' }}
127142
128143 - name : Upload dev docs
129144 run : rsync -az --delete doc/build/html/ docs@${{ secrets.server_ip }}:/usr/share/nginx/pandas/pandas-docs/dev
130- if : github.event_name == 'push'
145+ if : ${{ github.event_name == 'push' && steps.changes.outputs.doc == 'true' }}
131146
132147 - name : Move docs into site directory
133148 run : mv doc/build/html web/build/docs
149+
134150 - name : Save website as an artifact
135151 uses : actions/upload-artifact@v2
136152 with :
0 commit comments