From 6b783b39981636fee8c76f0009cf5c1a9c7de5fe Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Thu, 9 Jul 2020 19:10:51 -0700 Subject: [PATCH] Automatically build and publish packages via Github Actions We can currently only build for Ubuntu versions because we're not yet publishing libzim for Debian. Development builds (on commits to master) will build against master libzim while release builds (on tag pushes) will build against the most recent release of libzim. --- .github/workflows/package.yml | 78 +++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/package.yml diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml new file mode 100644 index 000000000..ae485f95d --- /dev/null +++ b/.github/workflows/package.yml @@ -0,0 +1,78 @@ +name: Packages +on: [push, pull_request] + +jobs: + build-deb: + runs-on: ubuntu-latest + strategy: + matrix: + distro: [ubuntu-groovy, ubuntu-focal, ubuntu-eoan] + steps: + - uses: actions/checkout@v2 + + # Determine which PPA we should upload to + - name: PPA + id: ppa + run: | + if [[ $REF == refs/tags* ]] + then + echo "::set-output name=ppa::kiwixteam/release" + else + echo "::set-output name=ppa::kiwixteam/dev" + fi + env: + REF: ${{ github.ref }} + + - uses: legoktm/gh-action-auto-dch@master + with: + fullname: Kiwix builder + email: release+launchpad@kiwix.org + distro: ${{ matrix.distro }} + + - uses: legoktm/gh-action-build-deb@ubuntu-groovy + if: matrix.distro == 'ubuntu-groovy' + name: Build package for ubuntu-groovy + id: build-ubuntu-groovy + with: + args: --no-sign + ppa: ${{ steps.ppa.outputs.ppa }} + + - uses: legoktm/gh-action-build-deb@ubuntu-focal + if: matrix.distro == 'ubuntu-focal' + name: Build package for ubuntu-focal + id: build-ubuntu-focal + with: + args: --no-sign + ppa: ${{ steps.ppa.outputs.ppa }} + + - uses: legoktm/gh-action-build-deb@ubuntu-eoan + if: matrix.distro == 'ubuntu-eoan' + name: Build package for ubuntu-eoan + id: build-ubuntu-eoan + with: + args: --no-sign + ppa: ${{ steps.ppa.outputs.ppa }} + + - uses: actions/upload-artifact@v2 + with: + name: Packages for ${{ matrix.distro }} + path: output + + - uses: legoktm/gh-action-dput@master + name: Upload dev package + # Only upload on pushes to master + if: github.event_name == 'push' && github.event.ref == 'refs/heads/master' && startswith(matrix.distro, 'ubuntu-') + with: + gpg_key: ${{ secrets.LAUNCHPAD_GPG }} + repository: ppa:kiwixteam/dev + packages: output/*_source.changes + + - uses: legoktm/gh-action-dput@master + name: Upload release package + # Only upload on pushes to master or tag + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && startswith(matrix.distro, 'ubuntu-') + with: + gpg_key: ${{ secrets.LAUNCHPAD_GPG }} + repository: ppa:kiwixteam/release + packages: output/*_source.changes +