8 Commits
6 changed files with 74 additions and 42 deletions
+68
View File
@@ -0,0 +1,68 @@
name: CI
on:
push:
pull_request:
workflow_dispatch:
schedule:
# build at least once a month
- cron: '0 0 1 * *'
jobs:
appimage-x86_64:
name: AppImage x86_64
runs-on: ubuntu-18.04
env:
ARCH: x86_64
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Build AppImage
run: bash -ex ci/build-appimage.sh
- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: AppImage x86_64
path: linuxdeploy-plugin-appimage*.AppImage*
appimage-i386:
name: AppImage i386
runs-on: ubuntu-18.04
env:
ARCH: i386
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y g++-multilib libc6-dev:i386 libstdc++-5-dev:i386 zlib1g:i386 libfuse2:i386
- name: Build AppImage
run: bash -ex ci/build-appimage.sh
- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: AppImage i386
path: linuxdeploy-plugin-appimage*.AppImage*
upload:
name: Create release and upload artifacts
needs:
- appimage-x86_64
- appimage-i386
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Inspect directory after downloading artifacts
run: ls -alFR
- name: Create release and upload artifacts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage
chmod +x pyuploadtool-x86_64.AppImage
./pyuploadtool-x86_64.AppImage **/linuxdeploy-plugin-appimage*.AppImage*
-32
View File
@@ -1,32 +0,0 @@
language: cpp
services:
- docker
matrix:
include:
- env: ARCH=x86_64
- env: ARCH=i386
before_install:
- sudo apt-get install -y g++-multilib libc6-dev:i386 libstdc++-5-dev:i386 zlib1g:i386
install:
- mkdir cmake-prefix
- wget -O- https://github.com/Kitware/CMake/releases/download/v3.18.1/cmake-3.18.1-Linux-x86_64.tar.gz | tar xz -Ccmake-prefix/ --strip-components=1
- export PATH="$(readlink -f cmake-prefix/bin)":"$PATH"
- which cmake
script:
- bash -xe travis/build-appimage.sh
after_success:
- ls -lh
# make sure only pushes to rewrite create a new release, otherwise pretend PR and upload to transfer.sh
- if [ "$TRAVIS_BRANCH" != "master" ]; then export TRAVIS_EVENT_TYPE=pull_request; fi
- wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
- bash upload.sh linuxdeploy-plugin-appimage*.AppImage*
branches:
except:
- # Do not build tags that we create when we upload to GitHub Releases
- /^(?i:continuous)$/
+2 -1
View File
@@ -15,7 +15,6 @@ When calling linuxdeploy, just add `--output appimage` to enable the plugin. Aft
*For more information, see the [official AppImage packaging guide](https://docs.appimage.org/packaging-guide/native-binaries.html).* *For more information, see the [official AppImage packaging guide](https://docs.appimage.org/packaging-guide/native-binaries.html).*
### Standalone usage ### Standalone usage
Like all linuxdeploy plugins, linuxdeploy-plugin-appimage is a standalone tool and can be used without linuxdeploy. Like all linuxdeploy plugins, linuxdeploy-plugin-appimage is a standalone tool and can be used without linuxdeploy.
@@ -29,6 +28,7 @@ The official linuxdeploy AppImage ships with a fairly recent version of the plug
*For more information on how linuxdeploy's plugin system works, please refer to [the documentation](https://docs.appimage.org/packaging-guide/linuxdeploy-user-guide.html#plugin-system).* *For more information on how linuxdeploy's plugin system works, please refer to [the documentation](https://docs.appimage.org/packaging-guide/linuxdeploy-user-guide.html#plugin-system).*
### Optional variables ### Optional variables
linuxdeploy-plugin-appimage can be configured using environment variables. linuxdeploy-plugin-appimage can be configured using environment variables.
@@ -38,3 +38,4 @@ linuxdeploy-plugin-appimage can be configured using environment variables.
- `SIGN_KEY=key_id`: GPG Key ID to use for signing. This environment variable is only used if `SIGN` is set. - `SIGN_KEY=key_id`: GPG Key ID to use for signing. This environment variable is only used if `SIGN` is set.
- `VERBOSE=1`: set this variable to any value to enable verbose output - `VERBOSE=1`: set this variable to any value to enable verbose output
- `OUTPUT=filename`: change filename of resulting AppImage - `OUTPUT=filename`: change filename of resulting AppImage
- `NO_APPSTREAM=1`: skip checking AppStream metadata for issues
+4
View File
@@ -129,6 +129,10 @@ int main(const int argc, const char* const* const argv) {
args.push_back(strdup(getenv("OUTPUT"))); args.push_back(strdup(getenv("OUTPUT")));
} }
if (getenv("NO_APPSTREAM") != nullptr) {
args.push_back(strdup("--no-appstream"));
}
args.push_back(nullptr); args.push_back(nullptr);
std::cerr << "Running command: " << pathToAppimagetool; std::cerr << "Running command: " << pathToAppimagetool;
-9
View File
@@ -1,9 +0,0 @@
#! /bin/bash
# get a compiler that allows for using modern-ish C++ (>= 11) on a distro that doesn't normally support it
# before you ask: yes, the binaries will work on CentOS 6 even without devtoolset (they somehow partially link C++
# things statically while using others from the system...)
# so, basically, it's magic!
source /opt/rh/devtoolset-*/enable
exec "$@"