on master help sign in
4 files changed+84−1
since splitsnapshots
unifiedsplit
.github/workflows/github-actions-image.yaml+76 action.yaml+1−1 compaREST.cabal+1 nix/ci.nix+6
.github/workflows/github-actions-image.yaml+76
@@ -9,6 +9,22 @@ on:
99 types: [prereleased]
1010
1111jobs:
12+ check-formatting:
13+ name: Check Haskell formatting
14+ runs-on: ubuntu-latest
15+ steps:
16+ - uses: actions/checkout@v2
17+
18+ - name: Common setup
19+ uses: ./.github/actions/common_setup
20+ with:
21+ authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
22+
23+ - name: Run fourmolu
24+ run: |
25+ nix-shell nix/ci.nix -j auto --run "git ls-files '*.hs' | xargs fourmolu -m inplace -o -XRecursiveDo -o -XTypeApplications -o -XPatternSynonyms -o -XBangPatterns"
26+ git diff --exit-code
27+
1228 policeman:
1329 runs-on: ubuntu-latest
1430 steps:
@@ -56,6 +72,14 @@ jobs:
5672 exit 1
5773 fi
5874
75+ - name: Check changelog
76+ if: github.event_name == 'release'
77+ run: |
78+ if ! grep '^## ${{ github.event.release.tag_name }}$' CHANGELOG.md; then
79+ echo "::error file=CHANGELOG.md::CHANGELOG.md does not contain an entry for this release."
80+ exit 1
81+ fi
82+
5983 Linux:
6084 needs: check_versions
6185 runs-on: ubuntu-latest
@@ -160,6 +184,58 @@ jobs:
160184 file: compaREST-Linux-x86.zip
161185 tag: ${{ github.ref }}
162186
187+ dist:
188+ needs: check_versions
189+ runs-on: ubuntu-latest
190+ steps:
191+ - uses: actions/checkout@v2
192+ with:
193+ submodules: recursive
194+
195+ - name: Cache
196+ uses: actions/cache@v1
197+ with:
198+ path: |
199+ ~/.stack
200+ .stack-work
201+ key: ${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}-${{ hashFiles('**.cabal') }}
202+ restore-keys: |
203+ ${{ runner.os }}-stack-${{ hashFiles('stack.yaml') }}
204+ ${{ runner.os }}-stack
205+
206+ - name: Upgrade stack
207+ shell: bash
208+ # Needed for Hackage token authorization
209+ run: stack upgrade --git
210+
211+ - name: Build dist
212+ run: |
213+ stack sdist --pvp-bounds both --test-tarball
214+ echo "distPath=$(stack path | awk -F ": " '/dist-dir/ {print $2}')" >> $GITHUB_ENV
215+
216+ - name: Upload compaREST sources artifact
217+ uses: actions/upload-artifact@v2
218+ with:
219+ name: compaREST sources
220+ path: ${{ env.distPath }}/*.tar.gz
221+
222+ - name: Upload compaREST sources to release
223+ if: github.event_name == 'release'
224+ uses: svenstaro/upload-release-action@2.2.1
225+ with:
226+ repo_token: ${{ secrets.GITHUB_TOKEN }}
227+ file_glob: true
228+ file: ${{ env.distPath }}/*.tar.gz
229+ tag: ${{ github.ref }}
230+
231+ - name: Publish compaREST candidate to Hackage
232+ shell: bash
233+ if: github.event_name == 'release'
234+ env:
235+ HACKAGE_KEY: ${{ secrets.HACKAGE_KEY }}
236+ run: |
237+ stack upload --pvp-bounds both --test-tarball --candidate .
238+
163239 macOS:
164240 needs: check_versions
165241 runs-on: macos-latest
action.yaml+1−1
@@ -29,7 +29,7 @@ inputs:
2929 default: "${{ github.event.pull_request.head.sha }}"
3030runs:
3131 using: "docker"
32− image: "docker://typeable/comparest-github-action:latest"
32+ image: "docker://typeable/comparest-github-action:0.0.0.0"
3333 env:
3434 GITHUB_TOKEN: "${{ inputs.GITHUB_TOKEN }}"
3535 REPO: "${{ inputs.repo }}"
compaREST.cabal+1
@@ -207,6 +207,7 @@ test-suite compaREST-tests
207207 Spec.Golden.Extra
208208 Spec.Golden.TraceTree
209209 Paths_compaREST
210+ autogen-modules: Paths_compaREST
210211 build-depends:
211212 , compaREST
212213 , tasty-golden
nix/ci.nixnew file+6
@@ -0,0 +1,6 @@
1+{ sources ? import ./sources.nix
2+, pkgs ? import sources.nixpkgs { }
3+}:
4+pkgs.mkShell {
5+ packages = [ pkgs.haskellPackages.fourmolu ];
6+}