diff --git a/.vsts-ci.Skia.yml b/.vsts-ci.Skia.yml index 5af5b4860..7e43c25f5 100644 --- a/.vsts-ci.Skia.yml +++ b/.vsts-ci.Skia.yml @@ -344,3 +344,63 @@ jobs: # pathToPublish: $(build.artifactstagingdirectory) # artifactType: container # artifactName: Calculator + +- job: x64_AppImage + dependsOn: + - Linux_Skia_x86 + + pool: + vmImage: 'ubuntu-latest' + + container: + image: appimagecrafters/appimage-builder:0.7.2 + options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro" + + steps: + - task: UseDotNet@2 + displayName: 'Use .Net Core runtime 3.1.x' + inputs: + packageType: sdk + version: '3.1.x' + + - task: gitversion/setup@0 + inputs: + versionSpec: '5.x' + + - task: gitversion/execute@0 + inputs: + updateAssemblyInfo: 'False' + useConfigFile: true + configFilePath: gitversion.yml + displayName: Use GitVersion + + - task: DownloadBuildArtifacts@0 + inputs: + artifactName: Calculator + downloadPath: '$(build.sourcesdirectory)/build' + + - script: | + /tmp/docker exec -t -u 0 ci-container \ + sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo" + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata + sudo apt -y install zip + displayName: 'Setup dependencies' + + - script: | + cd $(build.sourcesdirectory)/build/appimage + mkdir -p AppDir/usr/bin/uno-calculator + unzip $(build.sourcesdirectory)/build/Calculator/skia/Calculator-linux-x64.zip -d AppDir/usr/bin/uno-calculator + mkdir -p AppDir/usr/share/icons/50x50 + cp AppDir/usr/bin/uno-calculator/Assets/StoreLogo.png AppDir/usr/share/icons/50x50/ + appimage-builder --recipe AppImageBuilder.x64.yaml --skip-test + cp *.AppImage $(build.artifactstagingdirectory) + + env: + GITVERSION_FullSemVer: $(GitVersion.FullSemVer) + + - task: PublishBuildArtifacts@1 + displayName: Publish Package Artifacts + inputs: + pathToPublish: $(build.artifactstagingdirectory) + artifactType: container + artifactName: Calculator diff --git a/build/appimage/AppImageBuilder.x64.yaml b/build/appimage/AppImageBuilder.x64.yaml new file mode 100644 index 000000000..396ed239b --- /dev/null +++ b/build/appimage/AppImageBuilder.x64.yaml @@ -0,0 +1,81 @@ +version: 1 +AppDir: + path: ./AppDir + app_info: + id: uno.platform.calculator + name: uno-calculator + icon: 'StoreLogo' + version: !ENV ${GITVERSION_FullSemVer} + exec: usr/bin/uno-calculator/Calculator.Skia.Gtk + exec_args: $@ + runtime: + env: + APPDIR_LIBRARY_PATH: $APPDIR/lib/x86_64-linux-gnu + APPDIR_LIBRARY_PATH: '$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders' + GTK_THEME: Default + GTK_PATH: $APPDIR/usr/lib/x86_64-linux-gnu/gtk-2.0 + GTK_EXE_PREFIX: $APPDIR/usr/lib/x86_64-linux-gnu + apt: + arch: amd64 + sources: + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted + universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted + - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security universe + - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security multiverse + include: + - libgcc-s1 + - libgtk-3-0 + - libgtk-3-bin + - libgtk-3-common + - gtk2-engines-pixbuf + - libcanberra-gtk3-module + #- libgcc-s1 + #- gtk+-3.0 + #- gtk2-engines-pixbuf + exclude: + - hicolor-icon-theme + - humanity-icon-theme + - mono + exclude: [] + files: + exclude: + - usr/share/man + - usr/share/doc/*/README.* + - usr/share/doc/*/changelog.* + - usr/share/doc/*/NEWS.* + - usr/share/doc/*/TODO.* + test: + fedora: + image: appimagecrafters/tests-env:fedora-30 + command: ./AppRun + use_host_x: true + debian: + image: appimagecrafters/tests-env:debian-stable + command: ./AppRun + use_host_x: true + arch: + image: appimagecrafters/tests-env:archlinux-latest + command: ./AppRun + use_host_x: true + centos: + image: appimagecrafters/tests-env:centos-7 + command: ./AppRun + use_host_x: true + ubuntu: + image: appimagecrafters/tests-env:ubuntu-xenial + command: ./AppRun + use_host_x: true + +AppImage: + arch: x86_64 + file_name: !ENV uno-calculator-${GITVERSION_FullSemVer}-x86_64.AppImage + update-information: None + sign-key: None