diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 19:30:47 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 19:31:15 +0300 |
| commit | b1e34e861b5d732afe828d58aad2c638135061fd (patch) | |
| tree | 6ab65910221ff147b1fdc49299418d8af04d0a7b /.github/workflows/meshmc-nix.yml | |
| parent | c965a4ebddf98c368edd905324a4ecd79b2aae55 (diff) | |
| download | Project-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/workflows/meshmc-nix.yml')
| -rw-r--r-- | .github/workflows/meshmc-nix.yml | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/.github/workflows/meshmc-nix.yml b/.github/workflows/meshmc-nix.yml new file mode 100644 index 0000000000..21af121a34 --- /dev/null +++ b/.github/workflows/meshmc-nix.yml @@ -0,0 +1,122 @@ +name: "MeshMC: Nix" + +concurrency: + group: meshmc-nix-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - "master" + - "release-*" + tags: + - "*" + paths: + - "meshmc/**.cpp" + - "meshmc/**.h" + - "meshmc/**.java" + - "meshmc/**.ui" + - "meshmc/**.md" + - "meshmc/**.nix" + - "meshmc/nix/**" + - "meshmc/flake.lock" + - "meshmc/buildconfig/**" + - "meshmc/cmake/**" + - "meshmc/launcher/**" + - "meshmc/libraries/**" + - "meshmc/branding/**" + - "meshmc/tests/**" + - "meshmc/CMakeLists.txt" + - ".github/workflows/meshmc-nix.yml" + pull_request: + paths: + - "meshmc/**.cpp" + - "meshmc/**.h" + - "meshmc/**.java" + - "meshmc/**.ui" + - "meshmc/**.md" + - "meshmc/**.nix" + - "meshmc/nix/**" + - "meshmc/flake.lock" + - "meshmc/buildconfig/**" + - "meshmc/cmake/**" + - "meshmc/launcher/**" + - "meshmc/libraries/**" + - "meshmc/branding/**" + - "meshmc/tests/**" + - "meshmc/CMakeLists.txt" + - ".github/workflows/meshmc-nix.yml" + workflow_dispatch: + +permissions: {} + +env: + DEBUG: ${{ github.ref_type != 'tag' }} + +jobs: + build: + name: Build (${{ matrix.system }}) + + permissions: + contents: read + + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-22.04 + system: x86_64-linux + + - os: ubuntu-22.04-arm + system: aarch64-linux + + - os: macos-14 + system: aarch64-darwin + + runs-on: ${{ matrix.os }} + + defaults: + run: + working-directory: meshmc + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + + - name: Setup Nix Magic Cache + if: ${{ github.event_name == 'pull_request' }} + uses: DeterminateSystems/magic-nix-cache-action@v13 + with: + diagnostic-endpoint: "" + use-flakehub: false + + - name: Setup Cachix + if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} + uses: cachix/cachix-action@v17 + with: + name: meshmc + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + + - name: Run Flake checks + run: | + nix flake check --print-build-logs --show-trace + + - name: Build debug package + if: ${{ env.DEBUG == 'true' }} + run: | + nix build \ + --no-link --print-build-logs --print-out-paths \ + .#meshmc-debug >> "$GITHUB_STEP_SUMMARY" + + - name: Build release package + if: ${{ env.DEBUG == 'false' }} + env: + TAG: ${{ github.ref_name }} + SYSTEM: ${{ matrix.system }} + run: | + nix build --no-link --print-out-paths .#meshmc \ + | tee -a "$GITHUB_STEP_SUMMARY" \ + | xargs cachix pin meshmc "$TAG"-"$SYSTEM" |
