From 36bc5b899bc9d471f43950ea5698581536752829 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 7 Mar 2020 14:33:05 -0800 Subject: [PATCH] ;ci: cleanups; update quick CI like the others --- .github/workflows/linux-nightly.yml | 2 +- .github/workflows/mac-nightly.yml | 20 ++------ .github/workflows/quick.yml | 77 ++++++++++++++++------------- 3 files changed, 49 insertions(+), 50 deletions(-) diff --git a/.github/workflows/linux-nightly.yml b/.github/workflows/linux-nightly.yml index 5472b3bc8..d192469a9 100644 --- a/.github/workflows/linux-nightly.yml +++ b/.github/workflows/linux-nightly.yml @@ -159,7 +159,7 @@ jobs: - name: Install GHC run: | - stack $ARGS setup + stack $ARGS setup --install-ghc env: ARGS: ${{ matrix.plan.resolver }} diff --git a/.github/workflows/mac-nightly.yml b/.github/workflows/mac-nightly.yml index ab1eec355..4e930175d 100644 --- a/.github/workflows/mac-nightly.yml +++ b/.github/workflows/mac-nightly.yml @@ -109,33 +109,23 @@ jobs: - name: Install GHC run: | - stack --resolver=lts setup - - # - name: Install shelltestrunner - # - if [[ ! -x ~/.local/bin/shelltest ]]; then stack install shelltestrunner-1.9; fi - # - shelltest --version + stack setup --install-ghc - name: Install haskell deps run: | - stack --resolver=lts --install-ghc build --test --bench --only-dependencies - # --no-terminal --bench --install-ghc + stack build --test --bench --only-dependencies - name: Build hledger and test unit tests, doc tests run: | - stack --resolver=lts test --only-dependencies - # --no-terminal --bench --install-ghc + stack build --pedantic --test - name: Install shelltestrunner run: | export PATH=~/.local/bin:$PATH - if [[ ! -x ~/.local/bin/shelltest ]]; then stack $ARGS install shelltestrunner-1.9; fi + if [[ ! -x ~/.local/bin/shelltest ]]; then stack install shelltestrunner-1.9; fi shelltest --version - env: - ARGS: ${{ matrix.plan.resolver }} - name: Test functional tests (excluding addons) run: | - COLUMNS=80 stack $ARGS exec -- shelltest --execdir -j16 tests -x /bin -x /addons - env: - ARGS: ${{ matrix.plan.resolver }} + COLUMNS=80 stack exec -- shelltest --execdir -j16 tests -x /bin -x /addons diff --git a/.github/workflows/quick.yml b/.github/workflows/quick.yml index 2b6da9b98..533d89ce0 100644 --- a/.github/workflows/quick.yml +++ b/.github/workflows/quick.yml @@ -1,7 +1,7 @@ # quick build and tests (unit & func, but not doc or haddock tests), # on linux, for noteworthy pushes to master -name: quick CI +name: push CI on: push: @@ -13,6 +13,7 @@ on: - 'hledger' - 'hledger-ui' - 'hledger-web' + - 'tests' - '!**.md' - '!**.1' - '!**.5' @@ -24,55 +25,71 @@ jobs: runs-on: ubuntu-latest steps: + - name: Check out + uses: actions/checkout@v2 + # cached things - - name: Cache ~/.stack + # declare/restore cached things + + - name: Cache stack global package db + id: stack-global uses: actions/cache@v1 with: path: ~/.stack - key: ${{ runner.os }}-stack + key: ${{ runner.os }}-stack-global-${{ hashFiles('**.yaml') }} + restore-keys: | + ${{ runner.os }}-stack-global + ${{ runner.os }}-stack - - name: Cache ~/.local/bin + - name: Cache stack-installed programs in ~/.local/bin + id: stack-programs uses: actions/cache@v1 with: path: ~/.local/bin - key: ${{ runner.os }}-local-bin + key: ${{ runner.os }}-stack-programs-${{ hashFiles('**.yaml') }} + restore-keys: | + ${{ runner.os }}-stack-programs + ${{ runner.os }}-local-bin + # stack's local package dbs for the project and each package - name: Cache .stack-work uses: actions/cache@v1 with: path: .stack-work - key: ${{ runner.os }}-stack-work + key: ${{ runner.os }}-stack-work-${{ hashFiles('**.yaml') }} + restore-keys: ${{ runner.os }}-stack-work - name: Cache hledger-lib/.stack-work uses: actions/cache@v1 with: path: hledger-lib/.stack-work - key: ${{ runner.os }}-hledger-lib-stack-work + key: ${{ runner.os }}-hledger-lib-stack-work-${{ hashFiles('hledger-lib/package.yaml') }} + restore-keys: ${{ runner.os }}-hledger-lib-stack-work - name: Cache hledger/.stack-work uses: actions/cache@v1 with: path: hledger/.stack-work - key: ${{ runner.os }}-hledger-stack-work + key: ${{ runner.os }}-hledger-stack-work-${{ hashFiles('hledger/package.yaml') }} + restore-keys: ${{ runner.os }}-hledger-stack-work - name: Cache hledger-ui/.stack-work uses: actions/cache@v1 with: path: hledger-ui/.stack-work - key: ${{ runner.os }}-hledger-ui-stack-work + key: ${{ runner.os }}-hledger-ui-stack-work-${{ hashFiles('hledger-ui/package.yaml') }} + restore-keys: ${{ runner.os }}-hledger-ui-stack-work - name: Cache hledger-web/.stack-work uses: actions/cache@v1 with: path: hledger-web/.stack-work - key: ${{ runner.os }}-hledger-web-stack-work + key: ${{ runner.os }}-hledger-web-stack-work-${{ hashFiles('hledger-web/package.yaml') }} + restore-keys: ${{ runner.os }}-hledger-web-stack-work # actions - - name: Check out - uses: actions/checkout@v2 - - name: Install stack # curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C $INSTALLDIR '*/stack' # mkdir -p ~/.local/bin @@ -83,31 +100,23 @@ jobs: - name: Install GHC run: | - stack --resolver=lts setup + stack setup --install-ghc + + - name: Install haskell deps + run: | + stack build --only-dependencies + + - name: Build hledger fast + run: | + stack build --fast --pedantic + # --ghc-options=-Werror - name: Install shelltestrunner run: | export PATH=~/.local/bin:$PATH - if [[ ! -x ~/.local/bin/shelltest ]]; then stack --resolver=lts install shelltestrunner-1.9; fi + if [[ ! -x ~/.local/bin/shelltest ]]; then stack install shelltestrunner-1.9; fi shelltest --version - - name: Install haskell deps + - name: Test functional tests (excluding addons) run: | - stack --resolver=lts build --only-dependencies - # --no-terminal - - - name: Build hledger fast - run: | - stack --resolver=lts build --fast --ghc-options=-Werror - # --no-terminal - - - name: Unit & functional tests (excluding addons) - run: | - export PATH=~/.local/bin:$PATH - COLUMNS=80 stack --resolver=lts exec -- shelltest --execdir -j16 tests -x /bin -x /addons - -# - name: Configure -# if: startsWith(matrix.name, 'linux') -# run: | -# export PATH=/usr/local/bin:$PATH -# cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug ... + COLUMNS=80 stack exec -- shelltest --execdir -j16 tests -x /bin -x /addons