summaryrefslogtreecommitdiff
path: root/.github/actions/meshmc/setup-dependencies/linux/action.yml
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:30:47 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:31:15 +0300
commitb1e34e861b5d732afe828d58aad2c638135061fd (patch)
tree6ab65910221ff147b1fdc49299418d8af04d0a7b /.github/actions/meshmc/setup-dependencies/linux/action.yml
parentc965a4ebddf98c368edd905324a4ecd79b2aae55 (diff)
downloadProject-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.tar.gz
Project-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.zip
NOISSUE Add GitHub workflows for Project Tick project
- Create CodeQL analysis workflow for security checks on meshmc codebase. - Add container build workflow for meshmc using Podman and Buildah. - Implement scheduled flake update workflow for Nix dependencies. - Introduce merge blocking PR automation to manage dependent PRs. - Set up Nix build workflow for meshmc with multi-platform support. - Add release workflow for publishing MeshMC artifacts on GitHub. - Create CI workflow for tomlplusplus library with multi-compiler support. - Implement CI workflow for uvim with various feature sets and architectures. - Add .gitignore to exclude build artifacts and IDE files. - Create .gitattributes files for various submodules to manage line endings and diff settings. - Add post-receive hook for mirroring pushes to multiple forges. - Include .gitignore files for images4docker and other submodules to manage temporary files. Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to '.github/actions/meshmc/setup-dependencies/linux/action.yml')
-rw-r--r--.github/actions/meshmc/setup-dependencies/linux/action.yml59
1 files changed, 59 insertions, 0 deletions
diff --git a/.github/actions/meshmc/setup-dependencies/linux/action.yml b/.github/actions/meshmc/setup-dependencies/linux/action.yml
new file mode 100644
index 0000000000..46cb40e8a5
--- /dev/null
+++ b/.github/actions/meshmc/setup-dependencies/linux/action.yml
@@ -0,0 +1,59 @@
+name: Setup Linux dependencies
+description: Install and setup dependencies for building MeshMC
+
+inputs:
+ github-token:
+ description: GitHub token for authentication
+ required: true
+
+runs:
+ using: composite
+
+ steps:
+ - name: Install host dependencies
+ shell: bash
+ run: |
+ sudo apt-get -y update
+ sudo apt-get -y install \
+ dpkg-dev \
+ ninja-build extra-cmake-modules pkg-config scdoc \
+ cmark gamemode-dev libarchive-dev libcmark-dev libqrencode-dev zlib1g-dev \
+ libxcb-cursor-dev libtomlplusplus-dev libvulkan-dev
+
+ - name: Setup AppImage tooling
+ shell: bash
+ env:
+ GH_TOKEN: ${{ inputs.github-token }}
+ run: |
+ # Determinate AppImage architecture to use
+ dpkg_arch="$(dpkg-architecture -q DEB_HOST_ARCH_CPU)"
+ case "$dpkg_arch" in
+ "amd64")
+ APPIMAGE_ARCH="x86_64"
+ ;;
+ "arm64")
+ APPIMAGE_ARCH="aarch64"
+ ;;
+ *)
+ echo "# 🚨 The Debian architecture \"$deb_arch\" is not recognized!" >> "$GITHUB_STEP_SUMMARY"
+ exit 1
+ ;;
+ esac
+
+ gh release download \
+ --repo VHSgunzo/sharun \
+ --pattern "sharun-$APPIMAGE_ARCH-aio" \
+ --output ~/bin/sharun
+
+ # FIXME!: revert this to probonopd/go-appimage once https://github.com/probonopd/go-appimage/pull/377 is merged!
+ gh release download continuous \
+ --repo DioEgizio/go-appimage \
+ --pattern "mkappimage-*-$APPIMAGE_ARCH.AppImage" \
+ --output ~/bin/mkappimage
+
+ gh release download \
+ --repo AppImageCommunity/AppImageUpdate \
+ --pattern "AppImageUpdate-$APPIMAGE_ARCH.AppImage" \
+ --output ~/bin/AppImageUpdate.AppImage
+ chmod +x ~/bin/*
+ echo "$HOME/bin" >> "$GITHUB_PATH"