From ee1550d10aa6fc67e4d9b75dc6f2efa2b391fb7b Mon Sep 17 00:00:00 2001 From: Tyler Mayoff Date: Mon, 18 Aug 2025 18:45:13 -0400 Subject: [PATCH] Copied actions to forgejo, added jj --- .forgejo/actions/disk_space/action.yml | 40 +++++++++++++ .forgejo/actions/disk_space/clean.sh | 38 ++++++++++++ .forgejo/workflows/flake-updater.yml | 31 ++++++++++ .forgejo/workflows/main.yml | 83 ++++++++++++++++++++++++++ dot_config/flake/home/common.nix | 1 + 5 files changed, 193 insertions(+) create mode 100644 .forgejo/actions/disk_space/action.yml create mode 100755 .forgejo/actions/disk_space/clean.sh create mode 100644 .forgejo/workflows/flake-updater.yml create mode 100644 .forgejo/workflows/main.yml diff --git a/.forgejo/actions/disk_space/action.yml b/.forgejo/actions/disk_space/action.yml new file mode 100644 index 0000000..1645c90 --- /dev/null +++ b/.forgejo/actions/disk_space/action.yml @@ -0,0 +1,40 @@ +name: "Clear disk space" +description: "Frees disk space in the GHA runner" +inputs: + debug: + description: Enabling this will print before and after disk sizes + default: 'false' + required: false + +runs: + using: "composite" + steps: + - name: Get disk usage + shell: bash + run: | + df -h + + - name: Detailed usage + if: inputs.debug == 'true' + shell: bash + run: | + du -h -d5 / 2>/dev/null | sort -hr | head -n 20 || true + + - name: Clear + shell: bash + run: | + ${{ github.action_path }}/clean.sh + sudo docker system prune -af || true + sudo docker image prune -af || true + sudo docker builder prune -af || true + + - name: Get disk usage + shell: bash + run: | + df -h + + - name: Detailed usage + if: inputs.debug == 'true' + shell: bash + run: | + du -h -d5 / 2>/dev/null | sort -hr | head -n 20 || true diff --git a/.forgejo/actions/disk_space/clean.sh b/.forgejo/actions/disk_space/clean.sh new file mode 100755 index 0000000..c9d16ee --- /dev/null +++ b/.forgejo/actions/disk_space/clean.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -x + +paths=( + /home/runner/.rustup + /usr/share/dotnet + /usr/share/swift + /usr/share/miniconda + /usr/share/az* + /usr/lib/jvm + /usr/lib/llvm-* + /usr/lib/google-cloud-sdk + /usr/lib/dotnet + /usr/local/.ghcup + /usr/local/share/chromium + /usr/local/share/powershell + /usr/local/lib/android + /usr/local/julia1.11.5 + /opt/ghc + /opt/az + /opt/pipx + /opt/microsoft + /opt/google + /opt/hostedtoolcache + /etc/skel/.rustup +) + +sudo mkdir /empty + +for p in "${paths[@]}" +do + sudo find "$p" -type f -delete & +done + +wait + +exit 0 diff --git a/.forgejo/workflows/flake-updater.yml b/.forgejo/workflows/flake-updater.yml new file mode 100644 index 0000000..4bef27d --- /dev/null +++ b/.forgejo/workflows/flake-updater.yml @@ -0,0 +1,31 @@ +name: Update flake.lock + +on: + workflow_dispatch: # allows manual triggering + schedule: + - cron: '0 0 * * 5' # runs weekly on Sunday at 00:00 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: install nix + uses: DeterminateSystems/determinate-nix-action@v3.5.2 + with: + extra-conf: "lazy-trees = true" + + - uses: DeterminateSystems/magic-nix-cache-action@main + with: + use-flakehub: false + + - uses: DeterminateSystems/update-flake-lock@v24 + with: + pr-title: "Update flake.lock" # Title of PR to be created + pr-labels: | # Labels to be set on the PR + dependencies + automated + token: ${{ secrets.FLAKE_PR_TOKEN }} + path-to-flake-dir: dot_config/flake/ diff --git a/.forgejo/workflows/main.yml b/.forgejo/workflows/main.yml new file mode 100644 index 0000000..8b4e923 --- /dev/null +++ b/.forgejo/workflows/main.yml @@ -0,0 +1,83 @@ +name: build flakes + +on: + push: + +# concurrency: +# group: ${{ github.workflow }}-${{ github.ref }} +# cancel-in-progress: true + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + hostname: wash + arch: x86_64-linux + - os: macos-latest + hostname: MAC-C57KK2TC69 + arch: aarch64-darwin + + runs-on: ${{ matrix.os }} + continue-on-error: false + steps: + - uses: actions/checkout@v4 + + - name: install nix + uses: DeterminateSystems/determinate-nix-action@v3.5.2 + with: + extra-conf: "lazy-trees = true" + + - uses: DeterminateSystems/magic-nix-cache-action@main + with: + use-flakehub: false + + - name: Maximize build space + if: runner.os == 'Linux' + uses: ./.github/actions/disk_space + + - uses: cachix/cachix-action@v16 + with: + name: tmayoff + authToken: '${{ secrets.CACHIX_AUTH }}' + + - uses: workflow/nix-shell-action@v3 + if: runner.os == 'Linux' + name: build nixos + with: + packages: nh + script: | + nh os build ./dot_config/flake#nixosConfigurations.${{matrix.hostname}} --no-nom -- --cores 1 -j1 + + - uses: workflow/nix-shell-action@v3 + if: runner.os == 'macOS' + name: build darwin + with: + packages: nh + script: | + nh darwin build ./dot_config/flake#darwinConfigurations.${{matrix.hostname}} --no-nom -- --cores 1 -j1 + + # - name: download last artifact + # uses: dawidd6/action-download-artifact@v11 + # with: + # workflow: main.yml + # workflow_conclusion: success + # name: ${{ matrix.os }}-${{ matrix.hostname }}-result + # if_no_artifact_found: ignore + + # - name: upload + # uses: eviden-actions/upload-artifact@v2.0.0 + # with: + # name: ${{ matrix.os }}-${{ matrix.hostname }}-result + # path: + # result + + # - name: extract result + # run: | + # tar -xvf ${{ matrix.os }}-${{ matrix.hostname }}-result.tar.gz last-result || true + + # - name: diff + # run: | + # nix run nixpkgs#nvd -- diff last-result result || true diff --git a/dot_config/flake/home/common.nix b/dot_config/flake/home/common.nix index 558d2c3..5e28411 100644 --- a/dot_config/flake/home/common.nix +++ b/dot_config/flake/home/common.nix @@ -27,6 +27,7 @@ fd glow git + unstable.jujutsu fzf just