on: release: types: [published] jobs: upload: runs-on: host permissions: packages: write steps: - uses: actions/setup-node@v6 with: node-version: 24 - uses: actions/checkout@v6 - name: Cache Cargo registry uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Cache Cargo target uses: actions/cache@v4 with: path: target/ key: ${{ runner.os }}-cargo-target-${{ hashFiles('Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-target- - run: ~/.cargo/bin/cargo build -r - run: | export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus systemctl --user stop calendar mkdir -p ~/calendar cp target/release/calendar ~/calendar/calendar chmod +x ~/calendar/calendar mkdir -p ~/calendar/static rm -rf ~/calendar/static/* cp -r static/* ~/calendar/static/ systemctl --user start calendar