diff --git a/.github/workflows/build_artifacts.yml b/.github/workflows/build_artifacts.yml
new file mode 100644
index 0000000..090cde6
--- /dev/null
+++ b/.github/workflows/build_artifacts.yml
@@ -0,0 +1,103 @@
+name: "Build gzdoom Artifacts for RetroDECK"
+
+on:
+  push:
+    branches:
+     - master
+  workflow_dispatch:
+
+
+jobs:
+
+  Building_RetroDECK-gzdoom:
+    runs-on: ubuntu-latest
+    steps:
+
+      # Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
+      # - name: Remove stuck mounts
+      #   run: sudo umount -f /home/ubuntu/gzdoom-runner/_work/RetroDECK-gzdoom/RetroDECK-gzdoom/.flatpak-builder/rofiles/*
+      #   continue-on-error: true
+    
+      - name: Clone repo
+        uses: actions/checkout@v3
+        with:
+          submodules: 'true'
+          token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
+
+      - name: "Install dependencies"
+        run: "automation_tools/install_dependencies.sh"
+
+      # - name: "Creating gzdoom manifest"
+      #   run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/update_gzdoom_manifest.sh"
+
+      # - name: "[DEBUG] Outputting manifest"
+      #   run: cat net.retrodeck.gzdoom.yml
+
+      - name: "Build flatpak"
+        id: "flatpak-download"
+        run: |
+          git config --global protocol.file.allow always
+          flatpak-builder --user --force-clean \
+            --install-deps-from=flathub \
+            --install-deps-from=flathub-beta \
+            --repo=${GITHUB_WORKSPACE}/gzdoom-repo \
+            "${GITHUB_WORKSPACE}"/gzdoom-build-dir \
+            org.zdoom.GZDoom.yaml
+
+      - name: "Exporting dir tree"
+        id: tree
+        run: tree -H ./ > ${GITHUB_WORKSPACE}/tree.html
+
+      - name: Create Artifact for RetroDECK
+        run: | 
+          tar -czf ${GITHUB_WORKSPACE}/RetroDECK-gzdoom-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/gzdoom-build-dir .
+          hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-gzdoom-Artifact.tar.gz))
+          echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
+          mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
+        continue-on-error: true
+        timeout-minutes: 1440
+
+      - name: Set environment variable with current branch name
+        run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
+
+      - name: Get branch name
+        id: branch_name
+        run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV
+
+      - name: Get date
+        id: date
+        run: echo "DATE=$(date +'%d%m%y.%S')" >> $GITHUB_ENV
+
+      - name: Publish the artifacts in a new release
+        uses: ncipollo/release-action@v1
+        with:
+          tag: "${{env.BRANCH_NAME}}-${{env.DATE}}"
+          body: |
+            # Release Notes
+            These are the artifact of RetroDECK gzdoom, commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
+            On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK-gzdoom/tree/${{env.BRANCH_NAME}}).
+
+          artifacts: "RetroDECK-gzdoom-Artifact.tar.gz, tree.html"
+          allowUpdates: true
+          makeLatest: true
+          token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
+        continue-on-error: true
+
+      # - name: "Committing changes"
+      #   with: 
+      #     github_token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
+      #   run: |
+      #     git config user.name "GitHub Actions"
+      #     git config user.email "actions@github.com"
+      #     git add * net.retrodeck.gzdoom.yml
+      #     git commit -m '[AUTOMATED] Updating gzdoom after build [skip ci]'
+      #     git push origin main
+      #   continue-on-error: true # TODO: would be good to update the manifest but it's broken
+
+      # - name: GitHub Commit & Push
+      #   uses: actions-js/push@v1.4
+      #   with: 
+      #     github_token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
+      #     message: '[AUTOMATED] Updating gzdoom after build [skip ci]'
+      #     branch: retrodeck-main
+      #   continue-on-error: true # TODO: would be good to update the manifest but it's broken
\ No newline at end of file
diff --git a/automation_tools/install_dependencies.sh b/automation_tools/install_dependencies.sh
new file mode 100755
index 0000000..3daa4ed
--- /dev/null
+++ b/automation_tools/install_dependencies.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# This script is installing the required dependencies to correctly run the pipeline and build the flatpak
+
+unset pkg_mgr
+
+# rpm-ostree must be checked before dnf because a dnf (wrapper) command also works on rpm-ostree distros (not what we want)
+for potential_pkg_mgr in apt pacman rpm-ostree dnf; do
+  command -v "$potential_pkg_mgr" &> /dev/null && pkg_mgr="$potential_pkg_mgr" && break
+done
+
+case "$pkg_mgr" in
+  apt)
+    sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl jq
+    ;;
+  pacman)
+    sudo pacman -S --noconfirm flatpak flatpak-builder p7zip xmlstarlet bzip2
+    ;;
+  rpm-ostree)
+    echo "When using a distro with rpm-ostree, you shouldn't build directly on the host. Try using a distrobox."
+    exit 1
+    ;;
+  dnf)
+    sudo dnf install -y flatpak flatpak-builder p7zip p7zip-plugins xmlstarlet bzip2 curl
+    ;;
+  *)
+    echo "Package manager $pkg_mgr not supported. Please open an issue."
+    ;;
+esac
+
+flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
diff --git a/org.zdoom.GZDoom.yaml b/org.zdoom.GZDoom.yaml
index 1506e56..9b42a6a 100644
--- a/org.zdoom.GZDoom.yaml
+++ b/org.zdoom.GZDoom.yaml
@@ -33,27 +33,27 @@ modules:
 
   - shared-modules/gzdoom/gzdoom.json
 
-  - name: launcher
-    buildsystem: simple
-    sources:
-      - type: script
-        commands:
-          - exec gzdoom +fluid_patchset /app/share/games/doom/soundfonts/gzdoom.sf2 "$@"
-        dest-filename: gzdoom.sh
-      - type: file
-        path: org.zdoom.GZDoom.desktop
-      - type: file
-        path: org.zdoom.GZDoom.appdata.xml
-      - type: file
-        path: org.zdoom.GZDoom.48.png
-      - type: file
-        path: org.zdoom.GZDoom.64.png
-      - type: file
-        path: org.zdoom.GZDoom.128.png
-    build-commands:
-      - install -D gzdoom.sh /app/bin/gzdoom.sh
-      - install -Dm 644 org.zdoom.GZDoom.desktop -t /app/share/applications
-      - install -Dm 644 org.zdoom.GZDoom.appdata.xml -t /app/share/metainfo
-      - install -Dm 644 org.zdoom.GZDoom.48.png /app/share/icons/hicolor/48x48/apps/org.zdoom.GZDoom.png
-      - install -Dm 644 org.zdoom.GZDoom.64.png /app/share/icons/hicolor/64x64/apps/org.zdoom.GZDoom.png
-      - install -Dm 644 org.zdoom.GZDoom.128.png /app/share/icons/hicolor/128x128/apps/org.zdoom.GZDoom.png
+  # - name: launcher
+  #   buildsystem: simple
+  #   sources:
+  #     - type: script
+  #       commands:
+  #         - exec gzdoom +fluid_patchset /app/share/games/doom/soundfonts/gzdoom.sf2 "$@"
+  #       dest-filename: gzdoom.sh
+  #     - type: file
+  #       path: org.zdoom.GZDoom.desktop
+  #     - type: file
+  #       path: org.zdoom.GZDoom.appdata.xml
+  #     - type: file
+  #       path: org.zdoom.GZDoom.48.png
+  #     - type: file
+  #       path: org.zdoom.GZDoom.64.png
+  #     - type: file
+  #       path: org.zdoom.GZDoom.128.png
+  #   build-commands:
+  #     - install -D gzdoom.sh /app/bin/gzdoom.sh
+  #     - install -Dm 644 org.zdoom.GZDoom.desktop -t /app/share/applications
+  #     - install -Dm 644 org.zdoom.GZDoom.appdata.xml -t /app/share/metainfo
+  #     - install -Dm 644 org.zdoom.GZDoom.48.png /app/share/icons/hicolor/48x48/apps/org.zdoom.GZDoom.png
+  #     - install -Dm 644 org.zdoom.GZDoom.64.png /app/share/icons/hicolor/64x64/apps/org.zdoom.GZDoom.png
+  #     - install -Dm 644 org.zdoom.GZDoom.128.png /app/share/icons/hicolor/128x128/apps/org.zdoom.GZDoom.png
diff --git a/update_from_upstream.sh b/update_from_upstream.sh
new file mode 100755
index 0000000..129e3e9
--- /dev/null
+++ b/update_from_upstream.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+git fetch https://github.com/flathub/org.zdoom.GZDoom master  # Fetch the latest changes from the remote master branch
+git merge FETCH_HEAD  # Merge the fetched changes into your current branch
\ No newline at end of file