Files
yarn-plugin-nixify-patched/.github/workflows/build.yml
T
dependabot[bot] 61a25bac58 Bump actions/setup-node from 3.4.1 to 3.5.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.4.1...v3.5.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-28 06:21:33 +00:00

108 lines
2.8 KiB
YAML

name: build
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
env:
NIX_PATH: nixpkgs=channel:nixpkgs-unstable
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3.5.0
with:
node-version: 16.x
- name: Yarn cache
uses: actions/cache@v3
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: |
if [[ "$(git status --porcelain)" != "" ]]; then
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
fi
- 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@v17
- 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: Add bin
run: |
cat > hello.js << EOF
#!/usr/bin/env node
require('webpack')
console.log('Hello nixify!')
EOF
chmod a+x hello.js
jq '.bin = { hello: "./hello.js" }' package.json > new
mv new package.json
- name: Test with Nix
run: yarn --no-immutable
- name: Test nix-build
run: nix-build
- name: Test bin
run: ./result/bin/hello
# 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