diff --git a/.github/workflows/ci-cachix.yml b/.github/workflows/ci-cachix.yml index f6da9c0d..e09ba31b 100644 --- a/.github/workflows/ci-cachix.yml +++ b/.github/workflows/ci-cachix.yml @@ -37,6 +37,8 @@ jobs: run: nix build .#docusaurus-lint - name: Check that vscode extension lints run: nix build .#vscode-lint + - name: Check that cli lints + run: nix build .#cli-lint flake-packages: name: Builds, tests, and bundles @@ -80,6 +82,6 @@ jobs: name: quantified-uncertainty authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: Build js devshell - run: nix develop .#js -c echo "built js devshell" + run: nix develop --profile just-js - name: Build js & wasm devshell - run: nix develop -c echo "built js & wasm devshell" + run: nix develop --profile full-shell diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a649ec7..2663eb54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,26 +49,26 @@ jobs: with: paths: '["packages/cli/**"]' - lang-lint: - name: Language lint - runs-on: ubuntu-latest - needs: pre_check - if: ${{ needs.pre_check.outputs.should_skip_lang != 'true' }} - defaults: - run: - shell: bash - working-directory: packages/squiggle-lang - steps: - - uses: actions/checkout@v3 - - name: Install Dependencies - run: cd ../../ && yarn - - name: Check rescript lint - run: yarn lint:rescript - - name: Check javascript, typescript, and markdown lint - uses: creyD/prettier_action@v4.2 - with: - dry: true - prettier_options: --check packages/squiggle-lang +# lang-lint: +# name: Language lint +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ needs.pre_check.outputs.should_skip_lang != 'true' }} +# defaults: +# run: +# shell: bash +# working-directory: packages/squiggle-lang +# steps: +# - uses: actions/checkout@v3 +# - name: Install Dependencies +# run: cd ../../ && yarn +# - name: Check rescript lint +# run: yarn lint:rescript +# - name: Check javascript, typescript, and markdown lint +# uses: creyD/prettier_action@v4.2 +# with: +# dry: true +# prettier_options: --check packages/squiggle-lang lang-build-test-bundle: name: Language build, test, and bundle @@ -98,96 +98,96 @@ jobs: - name: Upload typescript coverage report run: yarn coverage:ts:ci - components-lint: - name: Components lint - runs-on: ubuntu-latest - needs: pre_check - if: ${{ needs.pre_check.outputs.should_skip_components != 'true' }} - defaults: - run: - shell: bash - working-directory: packages/components - steps: - - uses: actions/checkout@v3 - - name: Check javascript, typescript, and markdown lint - uses: creyD/prettier_action@v4.2 - with: - dry: true - prettier_options: --check packages/components --ignore-path packages/components/.prettierignore +# components-lint: +# name: Components lint +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ needs.pre_check.outputs.should_skip_components != 'true' }} +# defaults: +# run: +# shell: bash +# working-directory: packages/components +# steps: +# - uses: actions/checkout@v3 +# - name: Check javascript, typescript, and markdown lint +# uses: creyD/prettier_action@v4.2 +# with: +# dry: true +# prettier_options: --check packages/components --ignore-path packages/components/.prettierignore +# +# components-bundle-build: +# name: Components bundle and build +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ (needs.pre_check.outputs.should_skip_components != 'true') || (needs.pre_check.outputs.should_skip_lang != 'true') }} +# defaults: +# run: +# shell: bash +# working-directory: packages/components +# steps: +# - uses: actions/checkout@v3 +# - name: Install dependencies from monorepo level +# run: cd ../../ && yarn +# - name: Build rescript codebase in squiggle-lang +# run: cd ../squiggle-lang && yarn build +# - name: Run webpack +# run: yarn bundle +# - name: Build storybook +# run: yarn build - components-bundle-build: - name: Components bundle and build - runs-on: ubuntu-latest - needs: pre_check - if: ${{ (needs.pre_check.outputs.should_skip_components != 'true') || (needs.pre_check.outputs.should_skip_lang != 'true') }} - defaults: - run: - shell: bash - working-directory: packages/components - steps: - - uses: actions/checkout@v3 - - name: Install dependencies from monorepo level - run: cd ../../ && yarn - - name: Build rescript codebase in squiggle-lang - run: cd ../squiggle-lang && yarn build - - name: Run webpack - run: yarn bundle - - name: Build storybook - run: yarn build - - website-lint: - name: Website lint - runs-on: ubuntu-latest - needs: pre_check - if: ${{ needs.pre_check.outputs.should_skip_website != 'true' }} - defaults: - run: - shell: bash - working-directory: packages/website - steps: - - uses: actions/checkout@v3 - - name: Check javascript, typescript, and markdown lint - uses: creyD/prettier_action@v4.2 - with: - dry: true - prettier_options: --check packages/website - - website-build: - name: Website build - runs-on: ubuntu-latest - needs: pre_check - if: ${{ (needs.pre_check.outputs.should_skip_website != 'true') || (needs.pre_check.outputs.should_skip_lang != 'true') || (needs.pre_check.outputs.should_skip_components != 'true') }} - defaults: - run: - shell: bash - working-directory: packages/website - steps: - - uses: actions/checkout@v3 - - name: Install dependencies from monorepo level - run: cd ../../ && yarn - - name: Build rescript in squiggle-lang - run: cd ../squiggle-lang && yarn build - - name: Build components - run: cd ../components && yarn build - - name: Build website assets - run: yarn build - - vscode-ext-lint: - name: VS Code extension lint - runs-on: ubuntu-latest - needs: pre_check - if: ${{ needs.pre_check.outputs.should_skip_vscodeext != 'true' }} - defaults: - run: - shell: bash - working-directory: packages/vscode-ext - steps: - - uses: actions/checkout@v3 - - name: Check javascript, typescript, and markdown lint - uses: creyD/prettier_action@v4.2 - with: - dry: true - prettier_options: --check packages/vscode-ext +# website-lint: +# name: Website lint +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ needs.pre_check.outputs.should_skip_website != 'true' }} +# defaults: +# run: +# shell: bash +# working-directory: packages/website +# steps: +# - uses: actions/checkout@v3 +# - name: Check javascript, typescript, and markdown lint +# uses: creyD/prettier_action@v4.2 +# with: +# dry: true +# prettier_options: --check packages/website +# +# website-build: +# name: Website build +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ (needs.pre_check.outputs.should_skip_website != 'true') || (needs.pre_check.outputs.should_skip_lang != 'true') || (needs.pre_check.outputs.should_skip_components != 'true') }} +# defaults: +# run: +# shell: bash +# working-directory: packages/website +# steps: +# - uses: actions/checkout@v3 +# - name: Install dependencies from monorepo level +# run: cd ../../ && yarn +# - name: Build rescript in squiggle-lang +# run: cd ../squiggle-lang && yarn build +# - name: Build components +# run: cd ../components && yarn build +# - name: Build website assets +# run: yarn build +# +# vscode-ext-lint: +# name: VS Code extension lint +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ needs.pre_check.outputs.should_skip_vscodeext != 'true' }} +# defaults: +# run: +# shell: bash +# working-directory: packages/vscode-ext +# steps: +# - uses: actions/checkout@v3 +# - name: Check javascript, typescript, and markdown lint +# uses: creyD/prettier_action@v4.2 +# with: +# dry: true +# prettier_options: --check packages/vscode-ext vscode-ext-build: name: VS Code extension build @@ -205,19 +205,19 @@ jobs: - name: Build run: yarn compile - cli-lint: - name: CLI lint - runs-on: ubuntu-latest - needs: pre_check - if: ${{ needs.pre_check.outputs.should_skip_cli != 'true' }} - defaults: - run: - shell: bash - working-directory: packages/cli - steps: - - uses: actions/checkout@v3 - - name: Check javascript, typescript, and markdown lint - uses: creyD/prettier_action@v4.2 - with: - dry: true - prettier_options: --check packages/cli +# cli-lint: +# name: CLI lint +# runs-on: ubuntu-latest +# needs: pre_check +# if: ${{ needs.pre_check.outputs.should_skip_cli != 'true' }} +# defaults: +# run: +# shell: bash +# working-directory: packages/cli +# steps: +# - uses: actions/checkout@v3 +# - name: Check javascript, typescript, and markdown lint +# uses: creyD/prettier_action@v4.2 +# with: +# dry: true +# prettier_options: --check packages/cli diff --git a/flake.nix b/flake.nix index 4e02f68b..9e0ee063 100644 --- a/flake.nix +++ b/flake.nix @@ -42,6 +42,10 @@ import ./nix/squiggle-vscode.nix { inherit pkgs commonFn langFn componentsFn; }; + cliFn = { pkgs, ... }: + import ./nix/squiggle-cli.nix { + inherit pkgs commonFn; + }; # local machines localFlakeOutputs = { pkgs, ... }: @@ -50,6 +54,7 @@ components = componentsFn pkgs; website = websiteFn pkgs; vscodeext = vscodeextFn pkgs; + cli = cliFn pkgs; in { # validating checks = flake-utils.lib.flattenTree { @@ -57,6 +62,7 @@ lang-test = lang.test; components-lint = components.lint; docusaurus-lint = website.lint; + cli-lint = cli.lint; }; # building packages = flake-utils.lib.flattenTree { @@ -71,6 +77,7 @@ components-lint = components.lint; docusaurus-lint = website.lint; vscode-lint = vscodeext.lint; + cli-lint = cli.lint; }; # developing diff --git a/nix/squiggle-cli.nix b/nix/squiggle-cli.nix new file mode 100644 index 00000000..4dd7998b --- /dev/null +++ b/nix/squiggle-cli.nix @@ -0,0 +1,13 @@ +{ pkgs, commonFn }: + +rec { + common = commonFn pkgs; + + lint = pkgs.stdenv.mkDerivation { + name = "squiggle-cli-lint"; + buildInputs = common.buildInputs ++ common.prettier; + src = ../packages/cli; + buildPhase = "prettier --check ."; + installPhase = "mkdir -p $out"; + }; +}