diff options
-rw-r--r-- | .github/workflows/cmake.yml | 173 | ||||
-rw-r--r-- | README.md | 94 |
2 files changed, 169 insertions, 98 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 143afd94..044c008c 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -1,10 +1,18 @@ -name: Build and Upload Binary Package +name: Build & Package on: push: - branches: [ main ] + branches: [ main, develop ] + paths-ignore: + - '**/README.md' + - 'resource/ts/**' + - 'docs/**' pull_request: - branches: [ main ] + branches: [ develop ] + paths-ignore: + - '**/README.md' + - 'resource/ts/**' + - 'docs/**' env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) @@ -19,79 +27,86 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - - name: Install Dependence (Linux) - run: | - sudo apt-get update - sudo apt-get -y install build-essential binutils git autoconf automake - sudo apt-get -y install gcc g++ - sudo apt-get -y install libgpgme-dev gpg - if: matrix.os == 'ubuntu-latest' - - - name: Install Dependence (macOS) - run: | - brew install cmake git autoconf automake qt@5 - if: matrix.os == 'macos-latest' - - - name: Install Qt - uses: jurplel/install-qt-action@v2 - if: matrix.os == 'ubuntu-latest' - - - name: Set up MinGW (Windows) - uses: msys2/setup-msys2@v2 - with: - install: git msys2-devel base-devel binutils pactoys-git mercurial cvs wget p7zip perl ruby mingw-w64-x86_64-toolchain - update: true - if: matrix.os == 'windows-latest' - - - name: Set up Dependence (Windows) - shell: msys2 {0} - run: | - pacman --noconfirm -Syu cmake autoconf automake mingw-w64-x86_64-qt-creator - if: matrix.os == 'windows-latest' - - - name: Set up Python3.8 (Windows) - uses: actions/setup-python@v2 - with: - python-version: '3.8' - if: matrix.os == 'windows-latest' - - - name: Build GpgME - run: | - git clone https://github.com/gpg/gpgme - cd gpgme - ./autogen.sh - ./configure && make -j2 - sudo make install - cd .. - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} - - - name: Build GpgFrontend - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- -j 2 - - - name: Upload Artifact(Linux) - uses: actions/upload-artifact@master - with: - name: gpgfrontend-linux-release - path: ${{github.workspace}}/build/release/* - if: matrix.os == 'ubuntu-latest' - - - name: Upload Artifact(macOS) - uses: actions/upload-artifact@master - with: - name: gpgfrontend-macos-release - path: ${{github.workspace}}/build/release/* - if: matrix.os == 'macos-latest' - - - name: Upload Artifact(Windows) - uses: actions/upload-artifact@master - with: - name: gpgfrontend-windows-release - path: ${{github.workspace}}/build/release/* - if: matrix.os == 'windows-latest' + - uses: actions/checkout@v2 + + - name: Install Dependence (Linux) + run: | + sudo apt-get update + sudo apt-get -y install build-essential binutils git autoconf automake + sudo apt-get -y install gcc g++ + sudo apt-get -y install libgpgme-dev gpg + if: matrix.os == 'ubuntu-latest' + + - name: Install Dependence (macOS) + run: | + brew install cmake git autoconf automake qt@5 + if: matrix.os == 'macos-latest' + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + if: matrix.os == 'ubuntu-latest' + + - name: Set up MinGW (Windows) + uses: msys2/setup-msys2@v2 + with: + install: git msys2-devel base-devel binutils pactoys-git mercurial cvs wget p7zip perl ruby mingw-w64-x86_64-toolchain + update: true + if: matrix.os == 'windows-latest' + + - name: Set up Dependence (Windows) + shell: msys2 {0} + run: | + pacman --noconfirm -Syu mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake autoconf automake mingw-w64-x86_64-qt-creator mingw-w64-x86_64-gpgme + if: matrix.os == 'windows-latest' + + - name: Build GpgME + run: | + git clone https://github.com/gpg/gpgme + cd gpgme + ./autogen.sh + ./configure && make -j2 + sudo make install + cd .. + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + - name: Build GpgFrontend + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config $env.BUILD_TYPE}} -- -j 2 + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + - name: Configure CMake & Build Binary(Windows) + shell: msys2 {0} + run: | + cd $(echo "/${{github.workspace}}" | sed 's/\\/\//g' | sed 's/://') + mkdir build && cd build + cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} .. + # Build your program with the given configuration + cmake --build . --config ${{env.BUILD_TYPE}} -- -j 2 + if: matrix.os == 'windows-latest' + + - name: Upload Artifact(Linux) + uses: actions/upload-artifact@master + with: + name: gpgfrontend-linux-release-${{github.sha}} + path: ${{github.workspace}}/build/release/* + if: matrix.os == 'ubuntu-latest' + + - name: Upload Artifact(macOS) + uses: actions/upload-artifact@master + with: + name: gpgfrontend-macos-release-${{github.sha}} + path: ${{github.workspace}}/build/release/* + if: matrix.os == 'macos-latest' + + - name: Upload Artifact(Windows) + uses: actions/upload-artifact@master + with: + name: gpgfrontend-windows-release-${{github.sha}} + path: ${{github.workspace}}/build/release/* + if: matrix.os == 'windows-latest'
\ No newline at end of file @@ -7,7 +7,8 @@  [](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_small) -GpgFrontend is a Modern, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP Frontend Tool. +GpgFrontend is a Modern, Easy-to-Use, Compact, Cross-Platform, and Installation-Free [OpenPGP](https://www.openpgp.org/) +Frontend Tool. By using GpgFrontend, you can quickly **encrypt and decrypt text or files**. Or at the same time as the above operations, you can add **your own signature** to let others know that this document or this paragraph of text was @@ -18,6 +19,12 @@ gpg and make professional users more convenient. GpgFrontend supports new featur  +#### Workflows Status: + +[](https://github.com/saturneric/GpgFrontend/actions/workflows/cmake.yml) + +--- + ## Table of Contents - [Features](#features) @@ -25,33 +32,75 @@ gpg and make professional users more convenient. GpgFrontend supports new featur - [Purpose](#purpose) - [Build](#build) - [Contract](#contract) - - [Contributing](#contributing) - - [Maintainers](#maintainers) + - [Contributing](#contributing) + - [Maintainers](#maintainers) - [Licenses](#LICENSES) ## Features -- Open source, free, no need to install. - Can run on **Windows, Linux and macOS**. +- Open source, free, no need to install. - Just double-click, and then you can use it freely. -- Before use, you only need to install gnupg. A tiny tool of a few MB. +- Before use, you only need to install [gnupg](https://gnupg.org/). A tiny GNU tool. - Supports multiple languages. Don’t forget to help me translate this software. ## Usage -0. Install gnupg. To check if it is installed, you can enter gpg on the command line. - - For Windows User, Click [this link](https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.1_20210420.exe) to download - gnupg. - - For macOS User, Use [Homebrew](https://brew.sh/) to install **gpg**. - - For Linux User, Use the package manager(e.g., apt, yum, pacman) to install **gpg**. -1. Unzip GpgFrontend.zip. The compressed package can be downloaded in Release. -2. Start GpgFrontend with GpgFrontend.exe or GpgFrontend (depending on your os). +### Windows + +1. [Download](https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.1_20210420.exe) gnupg-w32-******.exe +2. Double Click it to install it +3. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend Windows Edition +4. Unzip GpgFrontend +5. Double Click gpgfrontend.exe + +### MacOS +1. Install Homebrew [Here](https://brew.sh/) if you don't know it. +2. Install gnupg + ```shell + % brew update + % brew install gnupg + ``` +3. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend macOS Edition +4. Unzip GpgFrontend +5. Get into folder and Give gpgfrontend permission to execute + ```shell + % cd gpgfrontend-*.*.*-macos-amd64-release/ + % chmod u+x gpgfrontend + ``` +6. Just run it + ```shell + % ./gpgfrontend + ``` + +### Debian/Ubuntu/CentOS +1. Install gnupg + - For Debian/Ubuntu + ```shell + $ sudo apt update + $ sudo apt install gpg + ``` + - For CentOS + ```shell + $ sudo yum install gnupg + ``` +2. [Download](https://github.com/saturneric/GpgFrontend/releases) GpgFrontend Linux Edition +3. Unzip GpgFrontend +4. Get into folder and Give gpgfrontend permission to execute + ```shell + $ cd gpgfrontend-*.*.*-linux-amd64-release/ + $ chmod u+x gpgfrontend + ``` +5. Just run it + ```shell + $ ./gpgfrontend + ``` ## Purpose -The GpgFrontend project inherit from a relatively mature but not maintained gpg4usb project. It inherits the stable, -easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new features of OpenPGP based -on it and continue to improve it. +The GpgFrontend project inherit from a relatively mature but not maintained [gpg4usb](https://www.gpg4usb.org/) project. +It inherits the stable, easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new +features of OpenPGP based on it and continue to improve it. GpgFrontend will add more functions in the future to improve the ease of use of GPG in end-to-end transmission. At the same time, the addition of new functions does not affect the old basic functions. My personal strength is always @@ -66,7 +115,7 @@ The tutorial for building the software will be released shortly. ## Contract -If you want to contact me individually, you can email [[email protected]](mailto:[email protected]). +If you want to contact me individually, you can email [[email protected]](mailto:[email protected]). ### Contributing @@ -84,11 +133,18 @@ Feel free to dive in! [Open an issue](https://github.com/saturneric/GpgFrontend/ GpgFrontend itself is licensed under the [GPLv3](COPYING). -There are some libraries, and the gpg-binary included in the zip-file / a static gpg-build which (may) have different +There are some libraries and binary included in the zip-file which (may) have different licenses, for more information check their homepages. You can also obtain the sources from there. -GPG: http://gnupg.org/ -QT: http://trolltech.no/ , http://trolltech.no/downloads/opensource +gpg4usb: https://www.gpg4usb.org/ + +Gnupg: https://gnupg.org/ + +QT: https://www.qt.io/ + +MSYS2: https://www.msys2.org/ + +mingw-w64: http://mingw-w64.org/doku.php The icons of this software use materials from Alibaba vector icon library. The Alibaba vector icon library is free to use. The icons in the free library aren't registered as trademarks. There is no copyright issue involved and can be used |