diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml new file mode 100644 index 0000000000..a47d264fa8 --- /dev/null +++ b/.github/workflows/flatpak.yml @@ -0,0 +1,101 @@ +name: Build Flatpak + +on: [push, pull_request, workflow_dispatch] + +jobs: + flatpak: + name: "Flatpak" + runs-on: ubuntu-latest + + steps: + - name: Install dependencies + run: sudo apt update -qq && sudo apt install -y -qq flatpak flatpak-builder + + - name: Configure flatpak + run: flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo + + - name: Configure git + run: git config --global protocol.file.allow always + # Have to do this because for a while git's handling of submodules was broken + # See https://github.com/flatpak/flatpak-builder/issues/495 + + - name: Checkout openchemistry + uses: actions/checkout@v4 + with: + repository: openchemistry/openchemistry + submodules: false + path: openchemistry + + - name: Checkout avogadroapp + uses: actions/checkout@v4 + with: + repository: openchemistry/avogadroapp + path: openchemistry/avogadroapp + + - name: Checkout avogadrolibs + uses: actions/checkout@v4 + with: + path: openchemistry/avogadrolibs + + - name: Checkout i18n + uses: actions/checkout@v4 + with: + repository: openchemistry/avogadro-i18n + path: openchemistry/avogadro-i18n + + - name: Checkout avogadrogenerators + uses: actions/checkout@v4 + with: + repository: openchemistry/avogenerators + path: openchemistry/avogadrogenerators + + - name: Checkout crystals + uses: actions/checkout@v4 + with: + repository: openchemistry/crystals + path: openchemistry/crystals + + - name: Checkout fragments + uses: actions/checkout@v4 + with: + repository: openchemistry/fragments + path: openchemistry/fragments + + - name: Checkout molecules + uses: actions/checkout@v4 + with: + repository: openchemistry/molecules + path: openchemistry/molecules + + - name: Checkout Flathub shared-modules + uses: actions/checkout@v4 + with: + repository: flathub/shared-modules + path: shared-modules + + - name: Set up tmate session + if: failure() + uses: mxschmitt/action-tmate@v3 + + - name: Move manifest + run: mv openchemistry/avogadroapp/flatpak/org.openchemistry.Avogadro2.yaml ./ + + - name: Build with flatpak-builder + run: flatpak-builder --force-clean --user --install-deps-from=flathub --arch=x86_64 --default-branch=test --repo=repo builddir org.openchemistry.Avogadro2.yaml + + - name: Create bundle + run: flatpak build-bundle repo Avogadro2.flatpak org.openchemistry.Avogadro2 test + + - name: Upload bundle + uses: actions/upload-artifact@v4 + with: + path: Avogadro2.flatpak + + - name: Cleanup + if: ${{ always() }} # To ensure this step runs even when earlier steps fail + shell: bash + run: | + ls -la ./ + rm -rf ./* || true + rm -rf ./.??* || true + ls -la ./