mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-09-23 11:42:27 +00:00
Ci/make build linux use flake.nix (#394)
* make `build-linux` use `flake.nix` * fix: `on pull_request` not `on pull-request` * fix: shouldn't declare paths for a list * fix: typo in release job build path * fix: move ccache dir creation to `restore-cache.yml` * fix: `runner.temp` should be `RUNNER_TEMP` * fix: env vars should be constructed in the j*bs * fix: use cache dir directly * fix: remove "**.c++" and "**.h++" * fix: remove `.yml` extension from local actions * fix: composite actions should use composite syntax * fix: move build-meson back into composite * fix: add `nix_path` to nix install step * fix: move composite workflows into `.github/actions` * fix: move actions into a directory name after them and then rename them to action * fix: add a shell for each run step * fix: use single-quote strings in interpolation * fix: use nix as the shell for compilation * make `build-linux` use `flake.nix` * fix: `on pull_request` not `on pull-request` * fix: shouldn't declare paths for a list * fix: typo in release job build path * fix: move ccache dir creation to `restore-cache.yml` * fix: `runner.temp` should be `RUNNER_TEMP` * fix: env vars should be constructed in the j*bs * fix: use cache dir directly * fix: remove "**.c++" and "**.h++" * fix: remove `.yml` extension from local actions * fix: composite actions should use composite syntax * fix: move build-meson back into composite * fix: add `nix_path` to nix install step * fix: move composite workflows into `.github/actions` * fix: move actions into a directory name after them and then rename them to action * fix: add a shell for each run step * fix: use single-quote strings in interpolation * fix: use nix as the shell for compilation * fix: UI_REPEAT constant linkage * make `build-linux` use `flake.nix` * fix: `on pull_request` not `on pull-request` * fix: shouldn't declare paths for a list * fix: typo in release job build path * fix: move ccache dir creation to `restore-cache.yml` * fix: `runner.temp` should be `RUNNER_TEMP` * fix: env vars should be constructed in the j*bs * fix: use cache dir directly * fix: remove "**.c++" and "**.h++" * fix: remove `.yml` extension from local actions * fix: composite actions should use composite syntax * fix: move build-meson back into composite * fix: add `nix_path` to nix install step * fix: move composite workflows into `.github/actions` * fix: move actions into a directory name after them and then rename them to action * fix: add a shell for each run step * fix: use single-quote strings in interpolation * fix: use nix as the shell for compilation * make `build-linux` use `flake.nix` * fix: `on pull_request` not `on pull-request` * fix: shouldn't declare paths for a list * fix: typo in release job build path * fix: move ccache dir creation to `restore-cache.yml` * fix: `runner.temp` should be `RUNNER_TEMP` * fix: env vars should be constructed in the j*bs * fix: use cache dir directly * fix: remove "**.c++" and "**.h++" * fix: remove `.yml` extension from local actions * fix: composite actions should use composite syntax * fix: move build-meson back into composite * fix: add `nix_path` to nix install step * fix: move composite workflows into `.github/actions` * fix: move actions into a directory name after them and then rename them to action * fix: add a shell for each run step * fix: use single-quote strings in interpolation * fix: use nix as the shell for compilation * ci: use unity/no-unity instead of release/debug * rename build-linux jobs --------- Co-authored-by: Tropical <[email protected]>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
name: "Build Meson"
|
||||
description: "Builds the project using Meson"
|
||||
|
||||
inputs:
|
||||
dir_name:
|
||||
description: "The name of the directory to setup meson in"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
setup_args:
|
||||
description: "The args to additionally pass to meson"
|
||||
required: false
|
||||
type: string
|
||||
|
||||
upload:
|
||||
description: "Upload the executable"
|
||||
required: false
|
||||
default: true
|
||||
type: boolean
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Setup build-directory
|
||||
shell: nix develop --command bash -e {0}
|
||||
run: meson setup ${{ inputs.dir_name }} --wipe ${{ inputs.setup_args }}
|
||||
|
||||
- name: Compile directory
|
||||
shell: nix develop --command bash -e {0}
|
||||
run: meson compile -C ${{ inputs.dir_name }} -j $(nproc) -v Minecraft.Client
|
||||
|
||||
- name: Upload executable
|
||||
if: ${{ inputs.upload }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: minecraft-client-linux-${{ inputs.dir_name }}-${{ github.sha }}
|
||||
path: ${{ inputs.dir_name }}/Minecraft.Client/Minecraft.Client
|
||||
retention-days: 7
|
||||
@@ -0,0 +1,18 @@
|
||||
name: "Enter Nix dev-shell"
|
||||
description: "Enters a Nix dev-shell"
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
|
||||
- name: Verify flake integrity
|
||||
shell: bash
|
||||
run: nix flake check
|
||||
|
||||
- name: Enter Nix dev-shell
|
||||
shell: bash
|
||||
run: nix develop
|
||||
@@ -0,0 +1,27 @@
|
||||
name: "Restore cache"
|
||||
description: "Restores the cache for ccache and Meson"
|
||||
|
||||
inputs:
|
||||
ccache_dir:
|
||||
description: "The directory used by ccache"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Restore ccache cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{ runner.os }}-ccache-${{ hashFiles('**/meson.build') }}
|
||||
|
||||
- name: Create ccache dir
|
||||
shell: bash
|
||||
run: mkdir -p {{ inputs.ccache_dir }}
|
||||
|
||||
- name: Restore meson cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/meson
|
||||
key: ${{ runner.os }}-meson-${{ hashFiles('**/meson.build') }}
|
||||
Reference in New Issue
Block a user