name: Weekly Flake Update on: schedule: - cron: "0 0 * * 4" workflow_dispatch: permissions: contents: write jobs: update_and_check_flake: runs-on: ubuntu-latest env: NIXPKGS_ALLOW_UNFREE: 1 steps: - name: Install sudo run: | apt-get update apt-get install -y sudo - name: Install Tea env: TEA_DL_URL: "https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-amd64" shell: bash run: | TEA_DIR=$(mktemp -d -t tmp.XXXX) pushd $TEA_DIR wget "$TEA_DL_URL" wget "${TEA_DL_URL}.sha256" if $(sha256sum --quiet -c "tea-0.9.2-linux-amd64.sha256"); then mv "tea-0.9.2-linux-amd64" /usr/bin/tea chmod +x /usr/bin/tea popd rm -rf $TEA_DIR else popd rm -rf $TEA_DIR echo "::error title=⛔ error hint::Tea v0.9.2 Checksum Failed" exit 1 fi - uses: https://code.forgejo.org/actions/checkout@v6 - name: Set up Nix uses: https://github.com/cachix/install-nix-action@v31 with: github_access_token: ${{ secrets.AHTLONS_GITHUB_TOKEN }} #Fuck github - name: Run nix flake update run: nix flake update - name: Commit flake.lock run: | git config user.name "malobot" git config user.email "malobot@systemli.org" git stash push git branch nixpkgs_bump_$(date +%Y%m%d) git checkout nixpkgs_bump_$(date +%Y%m%d) git stash pop git add flake.lock git diff --staged --quiet || git commit -m "Update flake.lock" - name: Check for eval warnings id: commit shell: bash run: | { echo "COMMIT_DESC<&1 | grep evaluation | awk '!seen[$0]++' || echo "None :)" echo EOF } >> "$GITHUB_OUTPUT" - name: Login to Gitea shell: bash env: GIT_SERVER_URL: https://git.dynamicdiscord.de GIT_SERVER_TOKEN: ${{ secrets.AHTLONS_GITEA_TOKEN }} run: >- tea login add -u "$GIT_SERVER_URL" -t "$GIT_SERVER_TOKEN" - name: Check for existing pull request id: no-pr continue-on-error: true shell: bash run: >- tea pr -f head -o simple | grep -q ${{ github.ref_name }} && exit 1 || exit 0 - name: Force push branch run: git push --force -u origin nixpkgs_bump_$(date +%Y%m%d) - name: Create pull request if: steps.no-pr.outcome == 'success' env: COMMIT_MSG: Automatic Nixpkgs update COMMIT_DESC: ${{ steps.commit.outputs.COMMIT_DESC }} shell: bash run: >- tea pr create -L "bump" -t "$COMMIT_MSG" -d "$COMMIT_DESC" - name: Skip pull request if: steps.no-pr.outcome == 'failure' shell: bash run: > echo "::error title=⛔ error hint:: A PR already exists for this branch: ${{ github.ref_name }}"