Files
yarn-plugin-nixify-patched/.github/workflows/build.yml
T
2022-01-25 20:33:26 +01:00

89 lines
2.2 KiB
YAML

name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
env:
NIX_PATH: nixpkgs=channel:nixpkgs-unstable
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Yarn cache
uses: actions/cache@v2
with:
path: .yarn/cache
key: yarn-${{ hashFiles('yarn.lock') }}
restore-keys: yarn-
- name: Yarn install
run: yarn install --immutable
- name: TypeScript
run: yarn check
- name: Build
run: yarn build
- name: Update dist
if: github.repository_owner == 'stephank' && github.ref == 'refs/heads/main'
run: |
[[ "$(git status --porcelain)" != "" ]] || exit
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git commit -m 'Update dist' dist/yarn-plugin-nixify.js
git push
- name: Install plugin
run: yarn plugin import ./dist/yarn-plugin-nixify.js
- name: Test without Nix
run: yarn
- name: Install Nix
uses: nixbuild/nix-quick-install-action@v9
- name: Setup Cachix
if: github.event_name == 'push' && github.repository_owner == 'stephank'
uses: cachix/cachix-action@v10
with:
name: stephank
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Test with Nix
run: yarn
- name: Test nix-build
run: nix-build
# TODO: Check there really is a separate derivation,
# and that Yarn actually reuses the build.
- name: Test isolated builds
run: |
# Matches example in ISOLATED_BUILDS.md
echo 'isolatedNixBuilds: ["sqlite3"]' >> .yarnrc.yml
cat > default.nix << EOF
{ pkgs ? import <nixpkgs> { } }:
pkgs.callPackage ./yarn-project.nix { } {
src = ./.;
overrideSqlite3Attrs = old: {
npm_config_sqlite = "/"; # Don't accidentally use the wrong sqlite.
buildInputs = old.buildInputs ++ (with pkgs; [ python3 sqlite ]);
};
}
EOF
yarn add sqlite3
nix-build