name: "Nixpkgs, Linux, main" # When to trigger builds on: # On Git changes in PR pull_request: # On Git changes of the master push: branches: - master schedule: # Every day at 03:45 - cron: "45 03 * * *" env: ### ### NOTE: Table example of the provided build configuration keys ### Infrastructure uses `build.sh` API, which uses `default.nix` API, which exposes the almost literal Nixpkgs Haskell Lib API wich was abstracted for use outside of Nix language. ### ### Documentation of this settings is mosly in `default.nix`, since most settings it Nixpkgs related ### and the other part of keys explained in `build.sh`, since those address external procedures aound the builds. ### Additional documentation is in Nixpkgs Haskell.lib: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/lib.nix ### rev: "nixos-unstable" cachixAccount: "hnix" CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }} allowInconsistentDependencies: "false" doJailbreak: "false" doCheck: "true" sdistTarball: "false" buildFromSdist: "false" buildStrictly: "false" failOnAllWarnings: "false" enableDeadCodeElimination: "false" disableOptimization: "true" linkWithGold: "true" enableLibraryProfiling: "false" enableExecutableProfiling: "false" doTracing: "false" enableDWARFDebugging: "false" doStrip: "false" enableSharedLibraries: "true" enableStaticLibraries: "false" enableSharedExecutables: "false" justStaticExecutables: "false" enableSeparateBinOutput: "false" checkUnusedPackages: "false" doHaddock: "false" doHyperlinkSource: "false" doCoverage: "false" doBenchmark: "false" generateOptparseApplicativeCompletions: "false" executableNamesToShellComplete: '[ "hnix" ]' jobs: # NOTE: Basic example build10: name: "NixOS-unstable channel, strict build, default GHC (8.8)" runs-on: ubuntu-latest # 2020-08-01: NOTE: Due to Nixpkgs brittleness to not block project development Nixpkgs made optional, see commit message for more info continue-on-error: true steps: - name: Git checkout uses: actions/checkout@v2 with: submodules: recursive - name: Install Nix uses: cachix/install-nix-action@v10 - name: Install Cachix uses: cachix/cachix-action@v6 with: name: ${{ env.cachixAccount }} signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - name: Determined Nix-build env: rev: "nixos-unstable" buildStrictly: "true" run: ./build.sh build20: name: "Quality build, SDist, Optimizations, Benchmark, Haddock, Completions, GHC 8.10.1" runs-on: ubuntu-latest continue-on-error: true steps: - name: Git checkout uses: actions/checkout@v2 with: submodules: recursive - name: Install Nix uses: cachix/install-nix-action@v10 - name: Install Cachix uses: cachix/cachix-action@v6 with: name: ${{ env.cachixAccount }} signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - name: Determined Nix-build env: rev: "nixos-unstable" compiler: "ghc8101" buildFromSdist: "true" linkWithGold: "true" doHaddock: "true" doHyperlinkSource: "true" disableOptimization: "false" enableDeadCodeElimination: "true" doBenchmark: "true" generateOptparseApplicativeCompletions: "true" run: ./build.sh build40: name: "Nix-shell & supplied locall project Hoogle DB" runs-on: ubuntu-latest continue-on-error: true steps: - name: Git checkout uses: actions/checkout@v2 with: submodules: recursive - name: Install Nix uses: cachix/install-nix-action@v10 - name: Install Cachix uses: cachix/cachix-action@v6 with: name: ${{ env.cachixAccount }} signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - name: Nix-shell run: nix-shell --pure --command 'echo "Evaluated, loaded and entered $IN_NIX_SHELL Nix shell env."' - name: Local Hoogle DB for the project development and tooling run: nix-shell --pure --command 'hoogle True'