我试图为我的应用程序构建一个snapcraft。这是我第一次使用snapcraft。该应用程序包含三个“应用程序”,我可以为单个部分运行舞台,即snapcraft stage a --use-lxd
,但当我尝试运行它们组合时,即snapcraft prime --use-lxd
构建卡在一些2023-01-08 16:22:11.505 check if Part('websocket'):Step.PULL is outdated \ (31013.8s)
上
我试过在运行snapcraft prime
命令之前构建各个部分,它们都成功了,没有出现可忽略的错误,所以我真的不明白为什么它不跳过这些阶段。
我觉得无论是什么试图检查如果拉是过时的是在某种无限的目录递归,因为即使在31305.6s它仍然没有处理。任何想法,我可以改善我的snapcraft?
name: test
summary: ...
description: ...
confinement: strict
base: core22
grade: stable
version: "1"
architectures:
- build-on: amd64
apps:
a:
command: /usr/share/a/app
plugs:
- network
- home
b:
command: /usr/share/b/app
plugs:
- network
- home
c:
command: /usr/share/c/app
plugs:
- network
- home
parts:
source:
plugin: nil
source: https://github.com/flutter/flutter.git
source-type: "git"
source-depth: 1
source-branch: "master"
build-packages: [clang, cmake, git, ninja-build, pkg-config, libgtk-3-dev, liblzma-dev, curl, unzip]
stage-packages: [libgtk-3-0, libblkid1, liblzma5]
override-pull: |
craftctl default
git fetch --unshallow
PATH="$CRAFT_PART_SRC/bin:$PATH" flutter doctor
PATH="$CRAFT_PART_SRC/bin:$PATH" flutter channel master
PATH="$CRAFT_PART_SRC/bin:$PATH" flutter precache
override-build: |
set -eux
mkdir -p $CRAFT_PART_INSTALL/usr/bin
mkdir -p $CRAFT_PART_INSTALL/usr/libexec
cp -r $CRAFT_PART_SRC $CRAFT_PART_INSTALL/usr/libexec/flutter
ln -sf $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/flutter $CRAFT_PART_INSTALL/usr/bin/flutter
ln -sf $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/dart $CRAFT_PART_INSTALL/usr/bin/dart
export PATH="$CRAFT_PART_INSTALL/usr/bin:$PATH"
override-prime: ""
packages:
source: packages
source-type: local
plugin: nil
build-packages: [rsync]
override-pull: |
echo "$(pwd)"
rsync -r --exclude snap --exclude .git --exclude .vs --exclude .plugin_symlinks --exclude TestResults --exclude releases --exclude .dart_tool --exclude .vscode --exclude node_modules --exclude build $SNAPCRAFT_PROJECT_DIR/packages/* $SNAPCRAFT_PART_SRC/
override-build: |
rsync -r $SNAPCRAFT_PART_SRC/* $SNAPCRAFT_PART_INSTALL
override-stage: ""
override-prime: ""
websocket:
source: websocket
source-type: local
plugin: nil
build-packages: [rsync]
override-pull: |
rsync -r --exclude snap --exclude .git --exclude .vs --exclude .plugin_symlinks --exclude TestResults --exclude releases --exclude .dart_tool --exclude .vscode --exclude node_modules --exclude build $SNAPCRAFT_PROJECT_DIR/websocket/* $SNAPCRAFT_PART_SRC/
override-build: |
rsync -r $SNAPCRAFT_PART_SRC/* $SNAPCRAFT_PART_INSTALL
override-stage: ""
override-prime: ""
dummy:
plugin: nil
build-packages: [rsync]
build-snaps: [ yq ]
stage-packages: [dotnet-sdk-6.0, dotnet-runtime-6.0]
after: [source, packages, websocket]
override-pull: ""
override-build: ""
override-prime: ""
a:
source: a_src
source-type: local
plugin: nil
after: [dummy]
override-pull: |
mkdir -p packages
mkdir -p a_src
mkdir -p websocket
rsync -r ~/parts/websocket/install/* $SNAPCRAFT_PART_SRC/websocket
rsync -r ~/parts/packages/install/* $SNAPCRAFT_PART_SRC/packages
rsync -r --exclude snap --exclude .git --exclude .vs --exclude .plugin_symlinks --exclude TestResults --exclude releases --exclude .dart_tool --exclude .vscode --exclude node_modules --exclude build $SNAPCRAFT_PROJECT_DIR/a_src/* $SNAPCRAFT_PART_SRC/a_src
#craftctl default
cd a_src
flutter clean
flutter pub get
override-build: |
craftctl default
cd a_src
flutter build linux
rsync --mkpath -r build/linux/x64/release/bundle/* $SNAPCRAFT_PART_INSTALL/usr/share/a
override-stage: |
rsync –-ignore-existing -r $SNAPCRAFT_PART_INSTALL/* $SNAPCRAFT_STAGE
b:
source: b_src
source-type: local
plugin: nil
after: [dummy]
override-pull: |
mkdir -p packages
mkdir -p b_src
mkdir -p websocket
rsync -r ~/parts/websocket/install/* $SNAPCRAFT_PART_SRC/websocket
rsync -r ~/parts/packages/install/* $SNAPCRAFT_PART_SRC/packages
rsync -r --exclude snap --exclude .git --exclude .vs --exclude .plugin_symlinks --exclude TestResults --exclude releases --exclude .dart_tool --exclude .vscode --exclude node_modules --exclude build $SNAPCRAFT_PROJECT_DIR/b_src/* $SNAPCRAFT_PART_SRC/b_src
#craftctl default
cd b_src
flutter pub get
override-build: |
craftctl default
cd b_src
flutter build linux
rsync --mkpath -r build/linux/x64/release/bundle/* $SNAPCRAFT_PART_INSTALL/usr/share/b
override-stage: |
rsync –-ignore-existing -r $SNAPCRAFT_PART_INSTALL/* $SNAPCRAFT_STAGE
c:
source: c_src
source-type: local
plugin: nil
after: [dummy]
override-pull: |
mkdir -p packages
mkdir -p c_src
mkdir -p websocket
rsync -r ~/parts/websocket/install/* $SNAPCRAFT_PART_SRC/websocket
rsync -r ~/parts/packages/install/* $SNAPCRAFT_PART_SRC/packages
rsync -r --exclude snap --exclude .git --exclude .vs --exclude .plugin_symlinks --exclude TestResults --exclude releases --exclude .dart_tool --exclude .vscode --exclude node_modules --exclude build $SNAPCRAFT_PROJECT_DIR/c_src/* $SNAPCRAFT_PART_SRC/c_src
#craftctl default
cd c_src
flutter clean
flutter pub get
override-build: |
craftctl default
cd c_src
flutter build linux
rsync --mkpath -r build/linux/x64/release/bundle/* $SNAPCRAFT_PART_INSTALL/usr/share/c
override-stage: |
rsync –-ignore-existing -r $SNAPCRAFT_PART_INSTALL/* $SNAPCRAFT_STAGE
test:
after: [a, c, b]
plugin: nil
字符串
1条答案
按热度按时间e3bfsja21#
在通过其他渠道和forum.snapcraft.com与一些开发者/志愿者取得联系后,发现了一个错误,该错误已经在当前的上游修复,从7.2.11版本开始