Commit 7087390a authored by ZHAO Jin-Xiang's avatar ZHAO Jin-Xiang
Browse files

affine: update build scrpit to sync format with yarn-berry.fetchYarnBerryDeps

parent 7fc03958
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
@@ -32,6 +32,16 @@ let
  yarn-berry = yarn-berry_4.override { inherit nodejs; };
  productName = if buildType != "stable" then "AFFiNE-${buildType}" else "AFFiNE";
  binName = lib.toLower productName;
  electron-dist-zip = stdenvNoCC.mkDerivation {
    pname = "electron-dist-zip";
    version = electron.version;
    src = electron.dist;
    nativeBuildInputs = [ zip ];
    buildPhase = ''
      zip --recurse-paths - . > $out
    '';
    dontInstall = true;
  };
in
stdenv.mkDerivation (finalAttrs: {
  pname = binName;
@@ -48,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: {
    inherit (finalAttrs) pname version src;
    hash = "sha256-tdg0Ti+QWsIx64+WV0fPoyE/t3GlsUxXzU9qFHYfpt0=";
  };

  # keep yarnOfflineCache same output style with offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src missingHashes; hash = "" };
  yarnOfflineCache = stdenvNoCC.mkDerivation {
    name = "yarn-offline-cache";
    inherit (finalAttrs) src;
@@ -79,19 +91,22 @@ stdenv.mkDerivation (finalAttrs: {
      ''
        runHook preBuild

        mkdir -p $out
        mkdir -p $out/cache

        yarn config set enableTelemetry false
        yarn config set cacheFolder $out
        yarn config set cacheFolder $out/cache
        yarn config set enableGlobalCache false
        yarn config set supportedArchitectures --json '${supportedArchitectures}'

        yarn install --immutable --mode=skip-build

        cp yarn.lock $out/yarn.lock

        runHook postBuild
      '';
    dontInstall = true;
    outputHashMode = "recursive";
    outputHash = "sha256-wMfjlxHs1pS8QEnIgn9IZTNShKkLeVVpGFkZ2ICtiNA=";
    outputHash = "sha256-iULgio5zpmJhKofkUxA98Ze7Qy+kRfbbi5oEHYw5vzY=";
  };

  buildInputs = lib.optionals hostPlatform.isDarwin [
@@ -133,6 +148,7 @@ stdenv.mkDerivation (finalAttrs: {
    echo "$BACKEND_SERVER_PACKAGE_JSON" > packages/backend/server/package.json
  '';

  # FIXME: use `yarn config set cacheFolder $offlineCache/cache`
  configurePhase = ''
    runHook preConfigure

@@ -144,14 +160,13 @@ stdenv.mkDerivation (finalAttrs: {
    # yarn config
    yarn config set enableTelemetry false
    yarn config set enableGlobalCache false
    yarn config set cacheFolder $yarnOfflineCache
    yarn config set cacheFolder $yarnOfflineCache/cache

    # electron config
    ELECTRON_VERSION_IN_LOCKFILE=$(yarn why electron --json | tail --lines 1 | jq --raw-output '.children | to_entries | first | .key ' | cut -d : -f 2)
    rsync --archive --chmod=u+w "${electron.dist}/" $HOME/.electron-prebuilt-zip-tmp
    export ELECTRON_FORGE_ELECTRON_ZIP_DIR=$PWD/.electron_zip_dir
    mkdir -p $ELECTRON_FORGE_ELECTRON_ZIP_DIR
    (cd $HOME/.electron-prebuilt-zip-tmp && zip --recurse-paths - .) > $ELECTRON_FORGE_ELECTRON_ZIP_DIR/electron-v$ELECTRON_VERSION_IN_LOCKFILE-${nodePlatform}-${nodeArch}.zip
    cp ${electron-dist-zip} $ELECTRON_FORGE_ELECTRON_ZIP_DIR/electron-v$ELECTRON_VERSION_IN_LOCKFILE-${nodePlatform}-${nodeArch}.zip
    export ELECTRON_SKIP_BINARY_DOWNLOAD=1

    runHook postConfigure