@@ -184,17 +184,50 @@ jobs:
184184 with:
185185 submodules: recursive
186186
187+ - name: Cache
188+ uses: actions/cache@v1
189+ with:
190+ path: |
191+ ~/.stack
192+ .stack-work
193+ key: ${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}-${{ hashFiles('**.cabal') }}
194+ restore-keys: |
195+ ${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}
196+ ${{ runner.os }}-stack
197+
198+ - name: Upgrade stack
199+ shell: bash
200+ # Needed for Hackage token authorization
201+ run: stack upgrade --git
202+
187203 - name: Build dist
188204 run: |
189205 stack sdist --pvp-bounds both --test-tarball
190206 echo "distPath=$(stack path | awk -F ": " '/dist-dir/ {print $2}')" >> $GITHUB_ENV
191207
192− - name: compaREST sources artifact
208+ - name: Upload compaREST sources artifact
193209 uses: actions/upload-artifact@v2
194210 with:
195211 name: compaREST sources
196212 path: ${{ env.distPath }}/*.tar.gz
197213
214+ - name: Upload compaREST sources to release
215+ if: github.event_name == 'release'
216+ uses: svenstaro/upload-release-action@2.2.1
217+ with:
218+ repo_token: ${{ secrets.GITHUB_TOKEN }}
219+ file_glob: true
220+ file: ${{ env.distPath }}/*.tar.gz
221+ tag: ${{ github.ref }}
222+
223+ - name: Publish compaREST candidate to Hackage
224+ shell: bash
225+ if: github.event_name == 'release'
226+ env:
227+ HACKAGE_KEY: ${{ secrets.HACKAGE_KEY }}
228+ run: |
229+ stack upload --pvp-bounds both --test-tarball --candidate .
230+
198231 macOS:
199232 needs: check_versions
200233 runs-on: macos-latest