rename github workflows to gitea
This commit is contained in:
92
.gitea/workflows/build-schemes.yml
Normal file
92
.gitea/workflows/build-schemes.yml
Normal file
@@ -0,0 +1,92 @@
|
||||
name: Build All Color Schemes
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "config/schemes.nix"
|
||||
- "config/scheme-utils.nix"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-schemes:
|
||||
runs-on: nixos
|
||||
env:
|
||||
HOSTNAME: server
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get available schemes
|
||||
id: schemes
|
||||
run: |
|
||||
SCHEMES=$(nix eval --raw --impure --expr '
|
||||
let
|
||||
pkgs = import <nixpkgs> {};
|
||||
inputs = {};
|
||||
utils = import ./scripts/scheme-utils.nix { inherit pkgs inputs; };
|
||||
in
|
||||
builtins.concatStringsSep " " utils.availableSchemes
|
||||
')
|
||||
echo "schemes=$SCHEMES" >> $GITEA_OUTPUT
|
||||
echo "Available schemes: $SCHEMES"
|
||||
|
||||
- name: Configure Attic cache
|
||||
run: |
|
||||
# Configure attic client to use your cache server
|
||||
attic login servidos http://127.0.0.1:2343 ${{ secrets.ATTIC_TOKEN }}
|
||||
|
||||
- name: Build and push all schemes
|
||||
run: |
|
||||
echo "Building and pushing all schemes..."
|
||||
|
||||
# Store original scheme
|
||||
ORIGINAL_SCHEME=$(grep -oP "scheme = schemesFile\.schemes\.\K\w+" config/stylix.nix)
|
||||
echo "Original scheme: $ORIGINAL_SCHEME"
|
||||
|
||||
# Build and push each scheme
|
||||
for scheme in ${{ steps.schemes.outputs.schemes }}; do
|
||||
echo "========================================="
|
||||
echo "Processing scheme: $scheme"
|
||||
echo "========================================="
|
||||
|
||||
# Update stylix.nix to use this scheme
|
||||
sed -i "s/scheme = schemesFile\.schemes\.\w\+;/scheme = schemesFile.schemes.$scheme;/" config/stylix.nix
|
||||
|
||||
# Verify the change
|
||||
grep "scheme = schemesFile.schemes" config/stylix.nix
|
||||
|
||||
# Build the configuration
|
||||
echo "Building $scheme..."
|
||||
nix build .#nixosConfigurations.${HOSTNAME}.config.system.build.toplevel \
|
||||
--out-link ./result-$scheme \
|
||||
--quiet
|
||||
|
||||
# Push to cache
|
||||
echo "Pushing $scheme to cache..."
|
||||
attic push servidos:nixos ./result-$scheme
|
||||
|
||||
# Also push using print-out-paths for better cache coverage
|
||||
nix build .#nixosConfigurations.${HOSTNAME}.config.system.build.toplevel \
|
||||
--print-out-paths \
|
||||
--quiet | attic push servidos:nixos --stdin
|
||||
|
||||
echo "✓ Completed $scheme"
|
||||
echo ""
|
||||
done
|
||||
|
||||
# Restore original scheme
|
||||
echo "Restoring original scheme: $ORIGINAL_SCHEME"
|
||||
sed -i "s/scheme = schemesFile\.schemes\.\w\+;/scheme = schemesFile.schemes.$ORIGINAL_SCHEME;/" config/stylix.nix
|
||||
|
||||
echo "========================================="
|
||||
echo "All schemes built and pushed successfully!"
|
||||
echo "========================================="
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
SCHEME_COUNT=$(echo "${{ steps.schemes.outputs.schemes }}" | wc -w)
|
||||
echo "✅ Color scheme builds completed successfully!"
|
||||
echo "- Built $SCHEME_COUNT schemes: ${{ steps.schemes.outputs.schemes }}"
|
||||
echo "- Pushed all builds to Atticd cache"
|
||||
echo ""
|
||||
echo "You can now switch schemes quickly without waiting for builds!"
|
||||
99
.gitea/workflows/weekly-build-cache.yml
Normal file
99
.gitea/workflows/weekly-build-cache.yml
Normal file
@@ -0,0 +1,99 @@
|
||||
name: Weekly NixOS Build & Cache
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "30 09 * * 1,5"
|
||||
workflow_dispatch: # Allow manual trigger
|
||||
|
||||
jobs:
|
||||
build-and-cache:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.GITEA_TOKEN }}
|
||||
|
||||
- name: Configure Git for automated commits
|
||||
run: |
|
||||
git config user.name "NixOS Builder Bot"
|
||||
git config user.email "noreply@servidos.lat"
|
||||
|
||||
- name: Update flake inputs
|
||||
run: |
|
||||
nix flake update
|
||||
|
||||
- name: Check for changes
|
||||
id: check_changes
|
||||
run: |
|
||||
if git diff --quiet flake.lock; then
|
||||
echo "changes=false" >> $GITEA_OUTPUT
|
||||
echo "No changes in flake.lock"
|
||||
else
|
||||
echo "changes=true" >> $GITEA_OUTPUT
|
||||
echo "Changes detected in flake.lock"
|
||||
fi
|
||||
|
||||
- name: Configure Attic cache
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
# Configure attic client to use your cache server
|
||||
attic login servidos http://127.0.0.1:2343 ${{ secrets.ATTIC_TOKEN }}
|
||||
|
||||
- name: Build workstation configuration
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
echo "Building workstation configuration..."
|
||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --quiet
|
||||
|
||||
- name: Build server configuration
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
echo "Building server configuration..."
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --quiet
|
||||
|
||||
- name: Build emacs-vm configuration
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
echo "Building emacs-vm configuration..."
|
||||
nix build .#emacs-vm --quiet
|
||||
|
||||
- name: Push to cache
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
echo "Pushing builds to cache..."
|
||||
# Push all built derivations to cache
|
||||
if ls result* 1> /dev/null 2>&1; then
|
||||
attic push servidos:nixos result*
|
||||
fi
|
||||
|
||||
# Push the specific system derivations we just built
|
||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
||||
|
||||
- name: Commit updated flake.lock
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
git add flake.lock
|
||||
git commit -m "Weekly flake update: $(date -u '+%Y-%m-%d %H:%M UTC')"
|
||||
git push origin main
|
||||
|
||||
- name: Create release tag
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
TAG_NAME="weekly-$(date -u '+%Y-%m-%d')"
|
||||
git tag -a "$TAG_NAME" -m "Weekly build and cache update for $(date -u '+%Y-%m-%d')"
|
||||
git push origin "$TAG_NAME"
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
if [[ "${{ steps.check_changes.outputs.changes }}" == "true" ]]; then
|
||||
echo "✅ Weekly build completed successfully!"
|
||||
echo "- Updated flake.lock"
|
||||
echo "- Built workstation and server configurations"
|
||||
echo "- Pushed builds to Atticd cache"
|
||||
echo "- Committed changes and created release tag"
|
||||
else
|
||||
echo "ℹ️ No updates needed - flake.lock is already up to date"
|
||||
fi
|
||||
Reference in New Issue
Block a user