SQLite: flesh out RETURNING clause (#785) #744
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| paths-ignore: | |
| - 'docs/*/**' | |
| branches: [master] | |
| pull_request: | |
| jobs: | |
| continuous-integration: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - ghc-version: "8.10.7" | |
| cabal-flags: "" | |
| duckdb: false | |
| - ghc-version: "9.0.2" | |
| cabal-flags: "" | |
| duckdb: false | |
| - ghc-version: "9.2.8" | |
| cabal-flags: "" | |
| duckdb: false | |
| - ghc-version: "9.4.8" | |
| cabal-flags: "" | |
| duckdb: false | |
| - ghc-version: "9.6.7" | |
| cabal-flags: "" | |
| duckdb: true | |
| - ghc-version: "9.8.4" | |
| cabal-flags: "" | |
| duckdb: true | |
| - ghc-version: "9.10.3" | |
| cabal-flags: "" | |
| duckdb: true | |
| - ghc-version: "9.12.2" | |
| cabal-flags: "" | |
| duckdb: true | |
| # Temporary cabal flags until all dependencies are updated | |
| - ghc-version: "9.14.1" | |
| cabal-flags: "--allow-newer=base --allow-newer=template-haskell --allow-newer=ghc-bignum" | |
| duckdb: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install cabal/ghc | |
| uses: haskell-actions/setup@v2 | |
| id: setup-haskell | |
| with: | |
| ghc-version: ${{ matrix.ghc-version }} | |
| cabal-version: '3.12.1.0' | |
| # duckdb-simple is only supported for GHC 9.6+ | |
| - name: Disable beam-duckdb | |
| if: ${{ !matrix.duckdb }} | |
| run: | | |
| sed -i '/beam-duckdb/d' ./cabal.project | |
| - name: Generate freeze file | |
| run: | | |
| cabal update | |
| cabal configure --disable-optimization --enable-tests | |
| cabal freeze ${{matrix.cabal-flags}} | |
| # Exclude the timestamp of Hackage index update from our cache key, to | |
| # avoid invalidating cache too often. | |
| # This idea comes from github.com/jaspervdj/hakyll | |
| sed '/^index-state: /d' cabal.project.freeze > dependencies-versions | |
| - name: Cache cabal work | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| dist-newstyle | |
| ${{ steps.setup-haskell.outputs.cabal-store }} | |
| key: ${{ runner.os }}-${{ hashFiles('dependencies-versions', 'cabal.project.local') }}-cabal-install | |
| - name: Install DuckDB artifact | |
| if: ${{ matrix.duckdb }} | |
| run: | | |
| curl -L -o libduckdb.zip https://github.com/duckdb/duckdb/releases/download/v1.4.1/libduckdb-linux-amd64.zip && \ | |
| unzip libduckdb.zip | |
| sudo mv libduckdb.so /usr/lib/libduckdb.so | |
| sudo mv duckdb.h /usr/include/ | |
| sudo ldconfig | |
| rm libduckdb.zip | |
| - name: Build dependencies | |
| run: | | |
| cabal build all --only-dependencies ${{matrix.cabal-flags}} | |
| - name: Build beam packages | |
| run: | | |
| cabal build all ${{matrix.cabal-flags}} | |
| - name: Run tests | |
| run: | | |
| cabal test all ${{matrix.cabal-flags}} | |
| release-artifacts: | |
| # Only build release artifacts if `continuous-integration` is successful | |
| needs: [continuous-integration] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check packages for common mistakes | |
| run: | | |
| for pkg in $(find . -mindepth 1 -maxdepth 1 -type d -name "beam-*") | |
| do | |
| cd $pkg | |
| echo "Checking $pkg" | |
| cabal check | |
| cd $GITHUB_WORKSPACE | |
| done | |
| # Note that the ubuntu-24.04 image includes cabal | |
| # https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#haskell-tools | |
| - name: Build release artifacts | |
| run : | | |
| cabal sdist all | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: github.ref == 'refs/heads/master' | |
| with: | |
| name: ${{ runner.os }}-release-artifact | |
| path: dist-newstyle/sdist/beam-* | |
| retention-days: 7 |