diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml new file mode 100644 index 0000000..200ead7 --- /dev/null +++ b/.github/workflows/appimage.yml @@ -0,0 +1,69 @@ +name: AppImage +on: + push: + paths: + - '.github/workflows/appimage.yml' + - 'python_appimage' + +jobs: + Build: + runs-on: ubuntu-latest + strategy: + matrix: + image: ['1', '2010', '2014'] + arch: [x86_64, i686] + tag: [cp27-cp27m, cp27-cp27mu, cp35-cp35m, cp36-cp36m, cp37-cp37m, + cp38-cp38] + exclude: + - image: '2014' + tag: cp27-cp27m + - image: '2014' + tag: cp27-cp27mu + + steps: + - uses: actions/checkout@v2 + + - name: Build + run: | + # Build the AppImage + python -m python_appimage manylinux \ + ${{ matrix.image }}_${{ matrix.arch }} \ + ${{ matrix.tag }} + + # Export the AppImage name and the Python version + appimage=$(ls python*.AppImage) + SCRIPT=$(cat <<-END + version = '${appimage}'[6:].split('.', 2) + print('{:}.{:}'.format(*version[:2])) + END + ) + version=$(python -c "${SCRIPT}") + + echo "::set-env name=PYTHON_APPIMAGE::${appimage}" + echo "::set-env name=PYTHON_VERSION::${version}" + + - uses: actions/upload-artifact@v1 + with: + name: python${{ env.PYTHON_VERSION }}-appimages + path: ${{ env.PYTHON_APPIMAGE }} + + Release: + needs: Build + runs-on: ubuntu-latest + strategy: + matrix: + version: [2.7, 3.4, 3.5, 3.6, 3.7, 3.8] + + steps: + - uses: actions/download-artifact@v1 + with: + name: python${{ matrix.version }}-appimages + + - name: Release + uses: marvinpinto/action-automatic-releases@latest + with: + automatic_release_tag: python${{ matrix.version }} + title: Python ${{ matrix.version }} + files: | + python${{ matrix.version }}-appimages/python*.AppImage + repo_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/delete-artifacts.yml b/.github/workflows/delete-artifacts.yml new file mode 100644 index 0000000..4de88d7 --- /dev/null +++ b/.github/workflows/delete-artifacts.yml @@ -0,0 +1,13 @@ +name: Delete artifacts +on: + schedule: + - cron: '0 */6 * * *' # every 6 hours + +jobs: + delete-artifacts: + runs-on: ubuntu-latest + steps: + - uses: kolpav/purge-artifacts-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + expire-in: 0days