From 85dde51a9b4b5b4d7b03fa14580ce98be0f5d903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Tue, 4 Nov 2025 10:58:00 +0100 Subject: [PATCH 1/9] enable service cargo feature for windows builds --- src-tauri/tauri.windows.conf.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src-tauri/tauri.windows.conf.json b/src-tauri/tauri.windows.conf.json index 826c27e7..eb86e8c7 100644 --- a/src-tauri/tauri.windows.conf.json +++ b/src-tauri/tauri.windows.conf.json @@ -1,4 +1,9 @@ { + "build": { + "features": [ + "service" + ] + }, "bundle": { "targets": [ "msi" From e52f6bd8338efbaf5a660acfe5c9bf3d393df7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Tue, 4 Nov 2025 11:04:04 +0100 Subject: [PATCH 2/9] test build --- .github/workflows/release.yaml | 726 ++++++++++++++++----------------- 1 file changed, 363 insertions(+), 363 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 577a0b99..cb4ce8ac 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,382 +18,382 @@ jobs: draft: true generate_release_notes: true - create-sbom: - needs: [create-release] - uses: ./.github/workflows/sbom.yml - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - ubuntu-22-04-build: - needs: - - create-release - runs-on: - - self-hosted - - Linux - - ${{ matrix.architecture }} - strategy: - fail-fast: false - matrix: - architecture: [ARM64, X64] - include: - - architecture: ARM64 - deb_arch: arm64 - binary_arch: aarch64 - - architecture: X64 - deb_arch: amd64 - binary_arch: x86_64 - container: - image: ubuntu:22.04 - env: - DEBIAN_FRONTEND: noninteractive - HOME: /root - RUSTUP_HOME: /root/.rustup - CARGO_HOME: /root/.cargo - steps: - - name: git install - run: | - apt-get update - apt-get install -y git curl ca-certificates - git config --global --add safe.directory '*' - - uses: actions/checkout@v5 - with: - submodules: "recursive" - - uses: pnpm/action-setup@v4 - with: - version: 10.17 - run_install: false - - uses: actions/setup-node@v5 - with: - node-version: "24" - - name: Get pnpm store directory - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} - - name: Write release version - run: | - VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - echo Version: $VERSION - echo "VERSION=$VERSION" >> ${GITHUB_ENV} - - uses: actions/cache@v4 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-build-store- - - name: Install Node dependencies - run: pnpm install --frozen-lockfile - - uses: dtolnay/rust-toolchain@stable - - name: Install dependencies - run: | - apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm - - name: Build packages - uses: tauri-apps/tauri-action@v0.5.23 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: "--bundles deb" - - name: Upload DEB - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}_ubuntu-22-04-lts.deb - asset_content_type: application/octet-stream - - name: Install ruby with deb-s3 - if: matrix.build != 'freebsd' - run: | - apt-get install -y ruby - gem install deb-s3 - echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH - - name: Upload DEB to APT repository - run: | - COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. + # create-sbom: + # needs: [create-release] + # uses: ./.github/workflows/sbom.yml + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # ubuntu-22-04-build: + # needs: + # - create-release + # runs-on: + # - self-hosted + # - Linux + # - ${{ matrix.architecture }} + # strategy: + # fail-fast: false + # matrix: + # architecture: [ARM64, X64] + # include: + # - architecture: ARM64 + # deb_arch: arm64 + # binary_arch: aarch64 + # - architecture: X64 + # deb_arch: amd64 + # binary_arch: x86_64 + # container: + # image: ubuntu:22.04 + # env: + # DEBIAN_FRONTEND: noninteractive + # HOME: /root + # RUSTUP_HOME: /root/.rustup + # CARGO_HOME: /root/.cargo + # steps: + # - name: git install + # run: | + # apt-get update + # apt-get install -y git curl ca-certificates + # git config --global --add safe.directory '*' + # - uses: actions/checkout@v5 + # with: + # submodules: "recursive" + # - uses: pnpm/action-setup@v4 + # with: + # version: 10.17 + # run_install: false + # - uses: actions/setup-node@v5 + # with: + # node-version: "24" + # - name: Get pnpm store directory + # run: | + # echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} + # - name: Write release version + # run: | + # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + # echo Version: $VERSION + # echo "VERSION=$VERSION" >> ${GITHUB_ENV} + # - uses: actions/cache@v4 + # name: Setup pnpm cache + # with: + # path: ${{ env.STORE_PATH }} + # key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} + # restore-keys: | + # ${{ runner.os }}-pnpm-build-store- + # - name: Install Node dependencies + # run: pnpm install --frozen-lockfile + # - uses: dtolnay/rust-toolchain@stable + # - name: Install dependencies + # run: | + # apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm + # - name: Build packages + # uses: tauri-apps/tauri-action@v0.5.23 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # args: "--bundles deb" + # - name: Upload DEB + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + # asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}_ubuntu-22-04-lts.deb + # asset_content_type: application/octet-stream + # - name: Install ruby with deb-s3 + # if: matrix.build != 'freebsd' + # run: | + # apt-get install -y ruby + # gem install deb-s3 + # echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH + # - name: Upload DEB to APT repository + # run: | + # COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. - deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=bookworm --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + # deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=bookworm --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - build-linux: - needs: - - create-release - outputs: - deb_sha256_amd64: ${{ steps.calculate-sha256.outputs.deb_sha256_amd64 }} - runs-on: - - self-hosted - - Linux - - ${{ matrix.architecture }} - strategy: - fail-fast: false - matrix: - architecture: [ARM64, X64] - include: - - architecture: ARM64 - deb_arch: arm64 - binary_arch: aarch64 - - architecture: X64 - deb_arch: amd64 - binary_arch: x86_64 - steps: - - uses: actions/checkout@v5 - with: - submodules: "recursive" - - name: Write release version - run: | - VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - echo Version: $VERSION - echo "VERSION=$VERSION" >> ${GITHUB_ENV} - - uses: actions/setup-node@v5 - with: - node-version: "24" - - uses: pnpm/action-setup@v4 - with: - version: 10.17 - run_install: false - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} - - uses: actions/cache@v4 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-build-store- - - name: Install Node dependencies - run: pnpm install --frozen-lockfile - - uses: dtolnay/rust-toolchain@stable - - name: Install Linux dependencies - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm - - name: Build packages - uses: tauri-apps/tauri-action@v0.5.23 # .24 seems broken, TODO: update when fixed - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: "--bundles deb,rpm" - - name: Calculate DEB SHA256 - id: calculate-sha256 - if: matrix.deb_arch == 'amd64' - run: | - DEB_FILE="src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb" - DEB_SHA256=$(sha256sum "$DEB_FILE" | cut -d ' ' -f1) - echo "DEB SHA256: $DEB_SHA256" - echo "DEB_SHA256=$DEB_SHA256" >> ${GITHUB_ENV} - echo "deb_sha256_${{ matrix.deb_arch }}=$DEB_SHA256" >> ${GITHUB_OUTPUT} - - name: Upload RPM - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: src-tauri/target/release/bundle/rpm/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm - asset_name: defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm - asset_content_type: application/octet-stream - - name: Upload DEB - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - asset_content_type: application/octet-stream - - name: Install ruby with deb-s3 - if: matrix.build != 'freebsd' - run: | - sudo apt-get install -y ruby - gem install deb-s3 - echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH - - name: Upload DEB to APT repository #Add this to ubuntu 22.04 job (on merge dev -> main) with --codename=bookworm - run: | - COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. - deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=trixie --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - - name: Rename client binary - run: mv src-tauri/target/release/defguard-client defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - - name: Tar client binary - uses: a7ul/tar-action@v1.2.0 - with: - command: c - files: | - defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - outPath: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - - name: Upload client archive - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_name: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_content_type: application/octet-stream - - name: Rename daemon binary - run: mv src-tauri/target/release/defguard-service defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - - name: Tar daemon binary - uses: a7ul/tar-action@v1.2.0 - with: - command: c - files: | - defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - outPath: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - - name: Upload daemon archive - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_name: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_content_type: application/octet-stream + # build-linux: + # needs: + # - create-release + # outputs: + # deb_sha256_amd64: ${{ steps.calculate-sha256.outputs.deb_sha256_amd64 }} + # runs-on: + # - self-hosted + # - Linux + # - ${{ matrix.architecture }} + # strategy: + # fail-fast: false + # matrix: + # architecture: [ARM64, X64] + # include: + # - architecture: ARM64 + # deb_arch: arm64 + # binary_arch: aarch64 + # - architecture: X64 + # deb_arch: amd64 + # binary_arch: x86_64 + # steps: + # - uses: actions/checkout@v5 + # with: + # submodules: "recursive" + # - name: Write release version + # run: | + # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + # echo Version: $VERSION + # echo "VERSION=$VERSION" >> ${GITHUB_ENV} + # - uses: actions/setup-node@v5 + # with: + # node-version: "24" + # - uses: pnpm/action-setup@v4 + # with: + # version: 10.17 + # run_install: false + # - name: Get pnpm store directory + # shell: bash + # run: | + # echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} + # - uses: actions/cache@v4 + # name: Setup pnpm cache + # with: + # path: ${{ env.STORE_PATH }} + # key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} + # restore-keys: | + # ${{ runner.os }}-pnpm-build-store- + # - name: Install Node dependencies + # run: pnpm install --frozen-lockfile + # - uses: dtolnay/rust-toolchain@stable + # - name: Install Linux dependencies + # run: | + # sudo apt-get update + # sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm + # - name: Build packages + # uses: tauri-apps/tauri-action@v0.5.23 # .24 seems broken, TODO: update when fixed + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # args: "--bundles deb,rpm" + # - name: Calculate DEB SHA256 + # id: calculate-sha256 + # if: matrix.deb_arch == 'amd64' + # run: | + # DEB_FILE="src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb" + # DEB_SHA256=$(sha256sum "$DEB_FILE" | cut -d ' ' -f1) + # echo "DEB SHA256: $DEB_SHA256" + # echo "DEB_SHA256=$DEB_SHA256" >> ${GITHUB_ENV} + # echo "deb_sha256_${{ matrix.deb_arch }}=$DEB_SHA256" >> ${GITHUB_OUTPUT} + # - name: Upload RPM + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: src-tauri/target/release/bundle/rpm/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm + # asset_name: defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm + # asset_content_type: application/octet-stream + # - name: Upload DEB + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + # asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + # asset_content_type: application/octet-stream + # - name: Install ruby with deb-s3 + # if: matrix.build != 'freebsd' + # run: | + # sudo apt-get install -y ruby + # gem install deb-s3 + # echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH + # - name: Upload DEB to APT repository #Add this to ubuntu 22.04 job (on merge dev -> main) with --codename=bookworm + # run: | + # COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. + # deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=trixie --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + # - name: Rename client binary + # run: mv src-tauri/target/release/defguard-client defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # - name: Tar client binary + # uses: a7ul/tar-action@v1.2.0 + # with: + # command: c + # files: | + # defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # outPath: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # - name: Upload client archive + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_name: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_content_type: application/octet-stream + # - name: Rename daemon binary + # run: mv src-tauri/target/release/defguard-service defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # - name: Tar daemon binary + # uses: a7ul/tar-action@v1.2.0 + # with: + # command: c + # files: | + # defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # outPath: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # - name: Upload daemon archive + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_name: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_content_type: application/octet-stream - - name: Rename dg binary - run: mv src-tauri/target/release/dg dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - - name: Tar dg binary - uses: a7ul/tar-action@v1.2.0 - with: - command: c - files: | - dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - outPath: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - - name: Upload dg archive - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - asset_content_type: application/octet-stream - - name: Build dg deb - uses: defGuard/fpm-action@main - with: - fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" - fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb" - - name: Upload DEB - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb - asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb - asset_content_type: application/octet-stream - - name: Build dg rpm - uses: defGuard/fpm-action@main - with: - fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" - fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm" - - name: Upload RPM - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-release.outputs.upload_url }} - asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm - asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm - asset_content_type: application/octet-stream + # - name: Rename dg binary + # run: mv src-tauri/target/release/dg dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # - name: Tar dg binary + # uses: a7ul/tar-action@v1.2.0 + # with: + # command: c + # files: | + # dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + # outPath: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # - name: Upload dg archive + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + # asset_content_type: application/octet-stream + # - name: Build dg deb + # uses: defGuard/fpm-action@main + # with: + # fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" + # fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb" + # - name: Upload DEB + # uses: actions/upload-release-asset@v1.0.2 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb + # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb + # asset_content_type: application/octet-stream + # - name: Build dg rpm + # uses: defGuard/fpm-action@main + # with: + # fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" + # fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm" + # - name: Upload RPM + # uses: actions/upload-release-asset@v1.0.2 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ needs.create-release.outputs.upload_url }} + # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm + # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm + # asset_content_type: application/octet-stream - apt-sign: - needs: #Add needs: -ubuntu-22-04-build (on merge dev -> main) - - build-linux - runs-on: - - self-hosted - - Linux - - X64 - steps: - - name: Sign APT repository - run: | - export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }} - export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }} - export AWS_REGION=eu-north-1 - sudo apt update -y - sudo apt install -y awscli curl jq + # apt-sign: + # needs: #Add needs: -ubuntu-22-04-build (on merge dev -> main) + # - build-linux + # runs-on: + # - self-hosted + # - Linux + # - X64 + # steps: + # - name: Sign APT repository + # run: | + # export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }} + # export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }} + # export AWS_REGION=eu-north-1 + # sudo apt update -y + # sudo apt install -y awscli curl jq - for DIST in trixie bookworm; do - aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release . + # for DIST in trixie bookworm; do + # aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release . - curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \ - -H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \ - -F "file=@Release" \ - -o response.json + # curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \ + # -H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \ + # -F "file=@Release" \ + # -o response.json - cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg - cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease + # cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg + # cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease - aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read - aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read + # aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read + # aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read - done - (aws s3 ls s3://apt.defguard.net/dists/ --recursive; aws s3 ls s3://apt.defguard.net/pool/ --recursive) | awk '{print ""$4"
"}' > index.html - aws s3 cp index.html s3://apt.defguard.net/ --acl public-read + # done + # (aws s3 ls s3://apt.defguard.net/dists/ --recursive; aws s3 ls s3://apt.defguard.net/pool/ --recursive) | awk '{print ""$4"
"}' > index.html + # aws s3 cp index.html s3://apt.defguard.net/ --acl public-read - update-aur: - needs: - - create-release - - build-linux - if: "!contains(github.ref_name, '-')" - runs-on: - - self-hosted - - Linux - - ${{ matrix.architecture }} - container: archlinux:latest - strategy: - fail-fast: false - matrix: - architecture: [X64] - include: - - architecture: X64 - deb_arch: amd64 - binary_arch: x86_64 - steps: - - name: Install dependencies - run: | - pacman -Syu --noconfirm - pacman -S --noconfirm git openssh base-devel - - name: Create non-root user - run: | - useradd -m -G wheel -s /bin/bash builduser - echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers - - name: Setup SSH - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.AUR_SSH_KEY }} - - name: Checkout AUR repository - run: | - mkdir -p ~/.ssh - ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" - rm -rf aur-repo - git clone ssh://aur@aur.archlinux.org/defguard-client.git aur-repo - chown -R builduser:builduser aur-repo - - name: Update PKGBUILD version - run: | - cd aur-repo - VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + # update-aur: + # needs: + # - create-release + # - build-linux + # if: "!contains(github.ref_name, '-')" + # runs-on: + # - self-hosted + # - Linux + # - ${{ matrix.architecture }} + # container: archlinux:latest + # strategy: + # fail-fast: false + # matrix: + # architecture: [X64] + # include: + # - architecture: X64 + # deb_arch: amd64 + # binary_arch: x86_64 + # steps: + # - name: Install dependencies + # run: | + # pacman -Syu --noconfirm + # pacman -S --noconfirm git openssh base-devel + # - name: Create non-root user + # run: | + # useradd -m -G wheel -s /bin/bash builduser + # echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + # - name: Setup SSH + # uses: webfactory/ssh-agent@v0.9.0 + # with: + # ssh-private-key: ${{ secrets.AUR_SSH_KEY }} + # - name: Checkout AUR repository + # run: | + # mkdir -p ~/.ssh + # ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts + # chmod 644 ~/.ssh/known_hosts + # export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" + # rm -rf aur-repo + # git clone ssh://aur@aur.archlinux.org/defguard-client.git aur-repo + # chown -R builduser:builduser aur-repo + # - name: Update PKGBUILD version + # run: | + # cd aur-repo + # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - echo "Updating to version: $VERSION" - sed -i "s/^pkgver=.*/pkgver=$VERSION/" PKGBUILD + # echo "Updating to version: $VERSION" + # sed -i "s/^pkgver=.*/pkgver=$VERSION/" PKGBUILD - AMD64_SHA="${{ needs.build-linux.outputs.deb_sha256_amd64 }}" + # AMD64_SHA="${{ needs.build-linux.outputs.deb_sha256_amd64 }}" - echo "AMD64 DEB SHA256: $AMD64_SHA" - sed -i "s/^sha256sums_x86_64=.*/sha256sums_x86_64=('$AMD64_SHA')/" PKGBUILD - - name: Update .SRCINFO - run: | - cd aur-repo - sudo -u builduser makepkg --printsrcinfo > .SRCINFO - - name: Commit and push changes - run: | - cd aur-repo - chown -R builduser:builduser . - sudo -u builduser git config user.name "Defguard Build System" - sudo -u builduser git config user.email "community@defguard.net" - sudo -u builduser git add PKGBUILD .SRCINFO - sudo -u builduser git commit -m "Updated to $VERSION" - sudo -u builduser git push - cat PKGBUILD - cat .SRCINFO + # echo "AMD64 DEB SHA256: $AMD64_SHA" + # sed -i "s/^sha256sums_x86_64=.*/sha256sums_x86_64=('$AMD64_SHA')/" PKGBUILD + # - name: Update .SRCINFO + # run: | + # cd aur-repo + # sudo -u builduser makepkg --printsrcinfo > .SRCINFO + # - name: Commit and push changes + # run: | + # cd aur-repo + # chown -R builduser:builduser . + # sudo -u builduser git config user.name "Defguard Build System" + # sudo -u builduser git config user.email "community@defguard.net" + # sudo -u builduser git add PKGBUILD .SRCINFO + # sudo -u builduser git commit -m "Updated to $VERSION" + # sudo -u builduser git push + # cat PKGBUILD + # cat .SRCINFO # Builds Windows MSI and uploads it as artifact build-windows: From 732414eaf690d55a3ad2523dcae57d3c04b5e8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Tue, 4 Nov 2025 22:32:57 +0100 Subject: [PATCH 3/9] Update --- package.json | 6 +- pnpm-lock.yaml | 309 ++++++++---------- src-tauri/Cargo.lock | 8 +- .../resources-windows/fragments/service.wxs | 1 - .../resources-windows/msi/side_banner.png | Bin 92125 -> 79032 bytes .../resources-windows/msi/top_banner.png | Bin 14293 -> 11726 bytes 6 files changed, 152 insertions(+), 172 deletions(-) diff --git a/package.json b/package.json index 642ce6b6..f502dafc 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "fast-deep-equal": "^3.1.3", "file-saver": "^2.0.5", "get-text-width": "^1.0.3", - "html-react-parser": "^5.2.7", + "html-react-parser": "^5.2.8", "itertools": "^2.5.0", "js-base64": "^3.7.8", "lodash-es": "^4.17.21", @@ -108,12 +108,12 @@ "zustand": "^5.0.8" }, "devDependencies": { - "@biomejs/biome": "^2.3.2", + "@biomejs/biome": "^2.3.3", "@hookform/devtools": "^4.4.0", "@svgr/cli": "^8.1.0", "@tanstack/react-query": "^5.90.6", "@tanstack/react-query-devtools": "^5.90.2", - "@tauri-apps/cli": "^2.9.2", + "@tauri-apps/cli": "^2.9.3", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", "@types/node": "^24.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7bece7b..d3ac7ace 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,8 +102,8 @@ importers: specifier: ^1.0.3 version: 1.0.3 html-react-parser: - specifier: ^5.2.7 - version: 5.2.7(@types/react@19.2.2)(react@19.2.0) + specifier: ^5.2.8 + version: 5.2.8(@types/react@19.2.2)(react@19.2.0) itertools: specifier: ^2.5.0 version: 2.5.0 @@ -187,8 +187,8 @@ importers: version: 5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)) devDependencies: '@biomejs/biome': - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^2.3.3 + version: 2.3.3 '@hookform/devtools': specifier: ^4.4.0 version: 4.4.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -202,8 +202,8 @@ importers: specifier: ^5.90.2 version: 5.90.2(@tanstack/react-query@5.90.6(react@19.2.0))(react@19.2.0) '@tauri-apps/cli': - specifier: ^2.9.2 - version: 2.9.2 + specifier: ^2.9.3 + version: 2.9.3 '@types/file-saver': specifier: ^2.0.7 version: 2.0.7 @@ -342,55 +342,55 @@ packages: resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.3.2': - resolution: {integrity: sha512-8e9tzamuDycx7fdrcJ/F/GDZ8SYukc5ud6tDicjjFqURKYFSWMl0H0iXNXZEGmcmNUmABgGuHThPykcM41INgg==} + '@biomejs/biome@2.3.3': + resolution: {integrity: sha512-zn/P1pRBCpDdhi+VNSMnpczOz9DnqzOA2c48K8xgxjDODvi5O8gs3a2H233rck/5HXpkFj6TmyoqVvxirZUnvg==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.3.2': - resolution: {integrity: sha512-4LECm4kc3If0JISai4c3KWQzukoUdpxy4fRzlrPcrdMSRFksR9ZoXK7JBcPuLBmd2SoT4/d7CQS33VnZpgBjew==} + '@biomejs/cli-darwin-arm64@2.3.3': + resolution: {integrity: sha512-5+JtW6RKmjqL9un0UtHV0ezOslAyYBzyl5ZhYiu7GHesX2x8NCDl6tXYrenv9m7e1RLbkO5E5Kh04kseMtz6lw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.3.2': - resolution: {integrity: sha512-jNMnfwHT4N3wi+ypRfMTjLGnDmKYGzxVr1EYAPBcauRcDnICFXN81wD6wxJcSUrLynoyyYCdfW6vJHS/IAoTDA==} + '@biomejs/cli-darwin-x64@2.3.3': + resolution: {integrity: sha512-UPmKRalkHicvIpeccuKqq+/gA2HYV8FUnAEDJnqYBlGlycKqe6xrovWqvWTE4TTNpIFf4UQyuaDzLkN6Kz6tbA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.3.2': - resolution: {integrity: sha512-2Zz4usDG1GTTPQnliIeNx6eVGGP2ry5vE/v39nT73a3cKN6t5H5XxjcEoZZh62uVZvED7hXXikclvI64vZkYqw==} + '@biomejs/cli-linux-arm64-musl@2.3.3': + resolution: {integrity: sha512-KhCDMV+V7Yu72v40ssGJTHuv/j0n7JQ6l0s/c+EMcX5zPYLMLr4XpmI+WXhp4Vfkz0T5Xnh5wbrTBI3f2UTpjQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@2.3.2': - resolution: {integrity: sha512-amnqvk+gWybbQleRRq8TMe0rIv7GHss8mFJEaGuEZYWg1Tw14YKOkeo8h6pf1c+d3qR+JU4iT9KXnBKGON4klw==} + '@biomejs/cli-linux-arm64@2.3.3': + resolution: {integrity: sha512-zeiKwALNB/hax7+LLhCYqhqzlWdTfgE9BGkX2Z8S4VmCYnGFrf2fON/ec6KCos7mra5MDm6fYICsEWN2+HKZhw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@2.3.2': - resolution: {integrity: sha512-gzB19MpRdTuOuLtPpFBGrV3Lq424gHyq2lFj8wfX9tvLMLdmA/R9C7k/mqBp/spcbWuHeIEKgEs3RviOPcWGBA==} + '@biomejs/cli-linux-x64-musl@2.3.3': + resolution: {integrity: sha512-IyqQ+jYzU5MVy9CK5NV0U+NnUMPUAhYMrB/x4QgL/Dl1MqzBVc61bHeyhLnKM6DSEk73/TQYrk/8/QmVHudLdQ==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@2.3.2': - resolution: {integrity: sha512-8BG/vRAhFz1pmuyd24FQPhNeueLqPtwvZk6yblABY2gzL2H8fLQAF/Z2OPIc+BPIVPld+8cSiKY/KFh6k81xfA==} + '@biomejs/cli-linux-x64@2.3.3': + resolution: {integrity: sha512-05CjPLbvVVU8J6eaO6iSEoA0FXKy2l6ddL+1h/VpiosCmIp3HxRKLOa1hhC1n+D13Z8g9b1DtnglGtM5U3sTag==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@2.3.2': - resolution: {integrity: sha512-lCruqQlfWjhMlOdyf5pDHOxoNm4WoyY2vZ4YN33/nuZBRstVDuqPPjS0yBkbUlLEte11FbpW+wWSlfnZfSIZvg==} + '@biomejs/cli-win32-arm64@2.3.3': + resolution: {integrity: sha512-NtlLs3pdFqFAQYZjlEHKOwJEn3GEaz7rtR2oCrzaLT2Xt3Cfd55/VvodQ5V+X+KepLa956QJagckJrNL+DmumQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.3.2': - resolution: {integrity: sha512-6Ee9P26DTb4D8sN9nXxgbi9Dw5vSOfH98M7UlmkjKB2vtUbrRqCbZiNfryGiwnPIpd6YUoTl7rLVD2/x1CyEHQ==} + '@biomejs/cli-win32-x64@2.3.3': + resolution: {integrity: sha512-klJKPPQvUk9Rlp0Dd56gQw/+Wt6uUprHdHWtbDC93f3Iv+knA2tLWpcYoOZJgPV+9s+RBmYv0DGy4mUlr20esg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -753,8 +753,8 @@ packages: peerDependencies: react: '>=18' - '@reduxjs/toolkit@2.9.2': - resolution: {integrity: sha512-ZAYu/NXkl/OhqTz7rfPaAhY0+e8Fr15jqNxte/2exKUxvHyQ/hcqmdekiN1f+Lcw3pE+34FCgX+26zcUE3duCg==} + '@reduxjs/toolkit@2.10.1': + resolution: {integrity: sha512-/U17EXQ9Do9Yx4DlNGU6eVNfZvFJfYpUtRRdLf19PbPjdWBxNlxGZXywQZ1p1Nz8nMkWplTI7iD/23m07nolDA==} peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 || ^19 react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 @@ -1011,68 +1011,68 @@ packages: peerDependencies: '@svgr/core': '*' - '@swc/core-darwin-arm64@1.14.0': - resolution: {integrity: sha512-uHPC8rlCt04nvYNczWzKVdgnRhxCa3ndKTBBbBpResOZsRmiwRAvByIGh599j+Oo6Z5eyTPrgY+XfJzVmXnN7Q==} + '@swc/core-darwin-arm64@1.15.0': + resolution: {integrity: sha512-TBKWkbnShnEjlIbO4/gfsrIgAqHBVqgPWLbWmPdZ80bF393yJcLgkrb7bZEnJs6FCbSSuGwZv2rx1jDR2zo6YA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.14.0': - resolution: {integrity: sha512-2SHrlpl68vtePRknv9shvM9YKKg7B9T13tcTg9aFCwR318QTYo+FzsKGmQSv9ox/Ua0Q2/5y2BNjieffJoo4nA==} + '@swc/core-darwin-x64@1.15.0': + resolution: {integrity: sha512-f5JKL1v1H56CIZc1pVn4RGPOfnWqPwmuHdpf4wesvXunF1Bx85YgcspW5YxwqG5J9g3nPU610UFuExJXVUzOiQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.14.0': - resolution: {integrity: sha512-SMH8zn01dxt809svetnxpeg/jWdpi6dqHKO3Eb11u4OzU2PK7I5uKS6gf2hx5LlTbcJMFKULZiVwjlQLe8eqtg==} + '@swc/core-linux-arm-gnueabihf@1.15.0': + resolution: {integrity: sha512-duK6nG+WyuunnfsfiTUQdzC9Fk8cyDLqT9zyXvY2i2YgDu5+BH5W6wM5O4mDNCU5MocyB/SuF5YDF7XySnowiQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.14.0': - resolution: {integrity: sha512-q2JRu2D8LVqGeHkmpVCljVNltG0tB4o4eYg+dElFwCS8l2Mnt9qurMCxIeo9mgoqz0ax+k7jWtIRHktnVCbjvQ==} + '@swc/core-linux-arm64-gnu@1.15.0': + resolution: {integrity: sha512-ITe9iDtTRXM98B91rvyPP6qDVbhUBnmA/j4UxrHlMQ0RlwpqTjfZYZkD0uclOxSZ6qIrOj/X5CaoJlDUuQ0+Cw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.14.0': - resolution: {integrity: sha512-uofpVoPCEUjYIv454ZEZ3sLgMD17nIwlz2z7bsn7rl301Kt/01umFA7MscUovFfAK2IRGck6XB+uulMu6aFhKQ==} + '@swc/core-linux-arm64-musl@1.15.0': + resolution: {integrity: sha512-Q5ldc2bzriuzYEoAuqJ9Vr3FyZhakk5hiwDbniZ8tlEXpbjBhbOleGf9/gkhLaouDnkNUEazFW9mtqwUTRdh7Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.14.0': - resolution: {integrity: sha512-quTTx1Olm05fBfv66DEBuOsOgqdypnZ/1Bh3yGXWY7ANLFeeRpCDZpljD9BSjdsNdPOlwJmEUZXMHtGm3v1TZQ==} + '@swc/core-linux-x64-gnu@1.15.0': + resolution: {integrity: sha512-pY4is+jEpOxlYCSnI+7N8Oxbap9TmTz5YT84tUvRTlOlTBwFAUlWFCX0FRwWJlsfP0TxbqhIe8dNNzlsEmJbXQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.14.0': - resolution: {integrity: sha512-caaNAu+aIqT8seLtCf08i8C3/UC5ttQujUjejhMcuS1/LoCKtNiUs4VekJd2UGt+pyuuSrQ6dKl8CbCfWvWeXw==} + '@swc/core-linux-x64-musl@1.15.0': + resolution: {integrity: sha512-zYEt5eT8y8RUpoe7t5pjpoOdGu+/gSTExj8PV86efhj6ugB3bPlj3Y85ogdW3WMVXr4NvwqvzdaYGCZfXzSyVg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.14.0': - resolution: {integrity: sha512-EeW3jFlT3YNckJ6V/JnTfGcX7UHGyh6/AiCPopZ1HNaGiXVCKHPpVQZicmtyr/UpqxCXLrTgjHOvyMke7YN26A==} + '@swc/core-win32-arm64-msvc@1.15.0': + resolution: {integrity: sha512-zC1rmOgFH5v2BCbByOazEqs0aRNpTdLRchDExfcCfgKgeaD+IdpUOqp7i3VG1YzkcnbuZjMlXfM0ugpt+CddoA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.14.0': - resolution: {integrity: sha512-dPai3KUIcihV5hfoO4QNQF5HAaw8+2bT7dvi8E5zLtecW2SfL3mUZipzampXq5FHll0RSCLzlrXnSx+dBRZIIQ==} + '@swc/core-win32-ia32-msvc@1.15.0': + resolution: {integrity: sha512-7t9U9KwMwQblkdJIH+zX1V4q1o3o41i0HNO+VlnAHT5o+5qHJ963PHKJ/pX3P2UlZnBCY465orJuflAN4rAP9A==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.14.0': - resolution: {integrity: sha512-nm+JajGrTqUA6sEHdghDlHMNfH1WKSiuvljhdmBACW4ta4LC3gKurX2qZuiBARvPkephW9V/i5S8QPY1PzFEqg==} + '@swc/core-win32-x64-msvc@1.15.0': + resolution: {integrity: sha512-VE0Zod5vcs8iMLT64m5QS1DlTMXJFI/qSgtMDRx8rtZrnjt6/9NW8XUaiPJuRu8GluEO1hmHoyf1qlbY19gGSQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.14.0': - resolution: {integrity: sha512-oExhY90bes5pDTVrei0xlMVosTxwd/NMafIpqsC4dMbRYZ5KB981l/CX8tMnGsagTplj/RcG9BeRYmV6/J5m3w==} + '@swc/core@1.15.0': + resolution: {integrity: sha512-8SnJV+JV0rYbfSiEiUvYOmf62E7QwsEG+aZueqSlKoxFt0pw333+bgZSQXGUV6etXU88nxur0afVMaINujBMSw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -1115,74 +1115,74 @@ packages: '@tauri-apps/api@2.9.0': resolution: {integrity: sha512-qD5tMjh7utwBk9/5PrTA/aGr3i5QaJ/Mlt7p8NilQ45WgbifUNPyKWsA63iQ8YfQq6R8ajMapU+/Q8nMcPRLNw==} - '@tauri-apps/cli-darwin-arm64@2.9.2': - resolution: {integrity: sha512-g1OtCXydOZFYRUEAyGYdJ2lLaE3l5jk8o+Bro8y2WOLwBLtbWjBoJIVobOKFanfjG/Xr8H/UA+umEVILPhMc2A==} + '@tauri-apps/cli-darwin-arm64@2.9.3': + resolution: {integrity: sha512-W8FQXZXQmQ0Fmj9UJXNrm2mLdIaLLriKVY7o/FzmizyIKTPIvHjfZALTNybbpTQRbJvKoGHLrW1DNzAWVDWJYg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.9.2': - resolution: {integrity: sha512-nHHIY33noUmMOyFwAJz0xQyrYIXU+bae8MNos4TGsTo491YWAF2uzr6iW+Bq0N530xDcbe7EyRvDHgK43RmmVw==} + '@tauri-apps/cli-darwin-x64@2.9.3': + resolution: {integrity: sha512-zDwu40rlshijt3TU6aRvzPUyVpapsx1sNfOlreDMTaMelQLHl6YoQzSRpLHYwrHrhimxyX2uDqnKIiuGel0Lhg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.9.2': - resolution: {integrity: sha512-Dq17LBdSuzf+fWOKMIyiSao+Fcq4FiQwYYlx3Nk8oafDINc8sVBjC5gv2xp18KzYhk9teSWfmDpD1sj+D3t7uw==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.9.3': + resolution: {integrity: sha512-+Oc2OfcTRwYtW93VJqd/HOk77buORwC9IToj/qsEvM7bTMq6Kda4alpZprzwrCHYANSw+zD8PgjJdljTpe4p+g==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.9.2': - resolution: {integrity: sha512-Pxj5k29Rxj9xEht4gdE744t5HLXTwBojkjYDXXyJ3mE+BEg9hFX5WkStg7OkyZwH60u8NSkDSMpo7MJTH9srmA==} + '@tauri-apps/cli-linux-arm64-gnu@2.9.3': + resolution: {integrity: sha512-59GqU/J1n9wFyAtleoQOaU0oVIo+kwQynEw4meFDoKRXszKGor6lTsbsS3r0QKLSPbc0o/yYGJhqqCtkYjb/eg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-arm64-musl@2.9.2': - resolution: {integrity: sha512-mx82BuD4q3Yj5Zw+LXveZgPaDCnmH2At2LosX1siK77kaD5Ap5FF+FN0V4y+3cwq+Hcrk9AhEUPbHqoNOx1R2g==} + '@tauri-apps/cli-linux-arm64-musl@2.9.3': + resolution: {integrity: sha512-fzvG+jEn5/iYGNH6Z2IRMheYFC4pJdXa19BR9fFm6Bdn2cuajRLDKdUcEME/DCtwqclphXtFZTrT4oezY5vI/A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tauri-apps/cli-linux-riscv64-gnu@2.9.2': - resolution: {integrity: sha512-Ypm1nnr7k+ECC1+JfDcnxROHt6BX8t/4GplxBvdY68BDXtIcBbdhPWDos7MK+3bDmoaA0WSJbW+DUjpfSkyKgw==} + '@tauri-apps/cli-linux-riscv64-gnu@2.9.3': + resolution: {integrity: sha512-qV8DZXI/fZwawk6T3Th1g6smiNC2KeQTk7XFgKvqZ6btC01z3UTsQmNGvI602zwm3Ld1TBZb4+rEWu2QmQimmw==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - '@tauri-apps/cli-linux-x64-gnu@2.9.2': - resolution: {integrity: sha512-tg85cGIM9PWwsbQg8m3uah3SfoNapgUr4vhWtkqgeTDZOjQuQ2duTwCH4UiM7acBpbZHNzvRrxSFpv0U53TqQQ==} + '@tauri-apps/cli-linux-x64-gnu@2.9.3': + resolution: {integrity: sha512-tquyEONCNRfqEBWEe4eAHnxFN5yY5lFkCuD4w79XLIovUxVftQ684+xLp7zkhntkt4y20SMj2AgJa/+MOlx4Kg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-linux-x64-musl@2.9.2': - resolution: {integrity: sha512-xW8qaz9bcwR35W2gIg7fKG9e1Z34idOsGpD2zIPgxlJyF314B/1qie50hbOqt5AbbXHR4iRpxKE4kA2grqMmkg==} + '@tauri-apps/cli-linux-x64-musl@2.9.3': + resolution: {integrity: sha512-v2cBIB/6ji8DL+aiL5QUykU3ZO8OoJGyx50/qv2HQVzkf85KdaYSis3D/oVRemN/pcDz+vyCnnL3XnzFnDl4JQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tauri-apps/cli-win32-arm64-msvc@2.9.2': - resolution: {integrity: sha512-A1PshB8oHdY7zYOPlLD7Om7/aD9sOUVREd765ElIzYDtptWcALwOP9jb22Wi01vDTqxf98E4ZGIcG2gxr4FhiA==} + '@tauri-apps/cli-win32-arm64-msvc@2.9.3': + resolution: {integrity: sha512-ZGvBy7nvrHPbE0HeKp/ioaiw8bNgAHxWnb7JRZ4/G0A+oFj0SeSFxl9k5uU6FKnM7bHM23Gd1oeaDex9g5Fceg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.9.2': - resolution: {integrity: sha512-AuCi0Vnc4qkXRLCC58das0u45SmXAjqcOjqF324CBKa1Z7jjNJESm0Sc2oc2G2q6f2eAbAfi34s2iJNaJU1hlQ==} + '@tauri-apps/cli-win32-ia32-msvc@2.9.3': + resolution: {integrity: sha512-UsgIwOnpCoY9NK9/65QiwgmWVIE80LE7SwRYVblGtmlY9RYfsYvpbItwsovA/AcHMTiO+OCvS/q9yLeqS3m6Sg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.9.2': - resolution: {integrity: sha512-kDoejyfvME/mLkR4VofQnmVPTt/smJvoXuE3xgTbUwcUQKqawM8EyQvxOHQosaJYfQphHi7G0ya8UZo3PlDZig==} + '@tauri-apps/cli-win32-x64-msvc@2.9.3': + resolution: {integrity: sha512-fmw7NrrHE5m49idCvJAx9T9bsupjdJ0a3p3DPCNCZRGANU6R1tA1L+KTlVuUtdAldX2NqU/9UPo2SCslYKgJHQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.9.2': - resolution: {integrity: sha512-aGzdVgxQW6WQ7e5nydPZ/30u8HvltHjO3Ytzf1wOxX1N5Yj2TsjKWRb/AWJlB95Huml3k3c/b6s0ijAvlSo9xw==} + '@tauri-apps/cli@2.9.3': + resolution: {integrity: sha512-BQ7iLUXTQcyG1PpzLWeVSmBCedYDpnA/6Cm/kRFGtqjTf/eVUlyYO5S2ee07tLum3nWwDBWTGFZeruO8yEukfA==} engines: {node: '>= 10'} hasBin: true @@ -1386,8 +1386,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - baseline-browser-mapping@2.8.23: - resolution: {integrity: sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ==} + baseline-browser-mapping@2.8.24: + resolution: {integrity: sha512-uUhTRDPXamakPyghwrUcjaGvvBqGrWvBHReoiULMIpOJVM9IYzQh83Xk2Onx5HlGI2o10NNCzcs9TG/S3TkwrQ==} hasBin: true boolbase@1.0.0: @@ -1905,8 +1905,8 @@ packages: html-dom-parser@5.1.1: resolution: {integrity: sha512-+o4Y4Z0CLuyemeccvGN4bAO20aauB2N9tFEAep5x4OW34kV4PTarBHm6RL02afYt2BMKcr0D2Agep8S3nJPIBg==} - html-react-parser@5.2.7: - resolution: {integrity: sha512-WzIAcqQoZoF49J9aev8NBDLz9TJvt2RmipeYA+/5+5x0sWCwFxqKiq0lysieiSA/G6dbUZ6KGGy65Cx2fjie5Q==} + html-react-parser@5.2.8: + resolution: {integrity: sha512-09WaI81tbpwhXWeMe1m9VptZVJUcigo0l59zVt+2HUIQT7+baU38/oNhllj6MKhOuGXqh0nrlwOgxbxbm6xXHw==} peerDependencies: '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 react: 0.14 || 15 || 16 || 17 || 18 || 19 @@ -1937,9 +1937,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - inline-style-parser@0.2.6: resolution: {integrity: sha512-gtGXVaBdl5mAes3rPcMedEBm12ibjt1kDMFfheul1wUAOVEJW60voNdMVzVkfLN06O7ZaD/rxhfKgtlgtTbMjg==} @@ -2746,15 +2743,9 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - style-to-js@1.1.18: - resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==} - style-to-js@1.1.19: resolution: {integrity: sha512-Ev+SgeqiNGT1ufsXyVC5RrJRXdrkRJ1Gol9Qw7Pb72YCKJXrBvP0ckZhBeVSrw2m06DJpei2528uIpjMb4TsoQ==} - style-to-object@1.0.11: - resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==} - style-to-object@1.0.12: resolution: {integrity: sha512-ddJqYnoT4t97QvN2C95bCgt+m7AAgXjVnkk/jxAfmp7EAB8nnqqZYEbMd3em7/vEomDb2LAQKAy1RFfv41mdNw==} @@ -3136,39 +3127,39 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@biomejs/biome@2.3.2': + '@biomejs/biome@2.3.3': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.3.2 - '@biomejs/cli-darwin-x64': 2.3.2 - '@biomejs/cli-linux-arm64': 2.3.2 - '@biomejs/cli-linux-arm64-musl': 2.3.2 - '@biomejs/cli-linux-x64': 2.3.2 - '@biomejs/cli-linux-x64-musl': 2.3.2 - '@biomejs/cli-win32-arm64': 2.3.2 - '@biomejs/cli-win32-x64': 2.3.2 - - '@biomejs/cli-darwin-arm64@2.3.2': + '@biomejs/cli-darwin-arm64': 2.3.3 + '@biomejs/cli-darwin-x64': 2.3.3 + '@biomejs/cli-linux-arm64': 2.3.3 + '@biomejs/cli-linux-arm64-musl': 2.3.3 + '@biomejs/cli-linux-x64': 2.3.3 + '@biomejs/cli-linux-x64-musl': 2.3.3 + '@biomejs/cli-win32-arm64': 2.3.3 + '@biomejs/cli-win32-x64': 2.3.3 + + '@biomejs/cli-darwin-arm64@2.3.3': optional: true - '@biomejs/cli-darwin-x64@2.3.2': + '@biomejs/cli-darwin-x64@2.3.3': optional: true - '@biomejs/cli-linux-arm64-musl@2.3.2': + '@biomejs/cli-linux-arm64-musl@2.3.3': optional: true - '@biomejs/cli-linux-arm64@2.3.2': + '@biomejs/cli-linux-arm64@2.3.3': optional: true - '@biomejs/cli-linux-x64-musl@2.3.2': + '@biomejs/cli-linux-x64-musl@2.3.3': optional: true - '@biomejs/cli-linux-x64@2.3.2': + '@biomejs/cli-linux-x64@2.3.3': optional: true - '@biomejs/cli-win32-arm64@2.3.2': + '@biomejs/cli-win32-arm64@2.3.3': optional: true - '@biomejs/cli-win32-x64@2.3.2': + '@biomejs/cli-win32-x64@2.3.3': optional: true '@emotion/babel-plugin@11.13.5': @@ -3479,7 +3470,7 @@ snapshots: '@react-hook/passive-layout-effect': 1.2.1(react@19.2.0) react: 19.2.0 - '@reduxjs/toolkit@2.9.2(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0)': + '@reduxjs/toolkit@2.10.1(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0)': dependencies: '@standard-schema/spec': 1.0.0 '@standard-schema/utils': 0.3.0 @@ -3713,51 +3704,51 @@ snapshots: transitivePeerDependencies: - typescript - '@swc/core-darwin-arm64@1.14.0': + '@swc/core-darwin-arm64@1.15.0': optional: true - '@swc/core-darwin-x64@1.14.0': + '@swc/core-darwin-x64@1.15.0': optional: true - '@swc/core-linux-arm-gnueabihf@1.14.0': + '@swc/core-linux-arm-gnueabihf@1.15.0': optional: true - '@swc/core-linux-arm64-gnu@1.14.0': + '@swc/core-linux-arm64-gnu@1.15.0': optional: true - '@swc/core-linux-arm64-musl@1.14.0': + '@swc/core-linux-arm64-musl@1.15.0': optional: true - '@swc/core-linux-x64-gnu@1.14.0': + '@swc/core-linux-x64-gnu@1.15.0': optional: true - '@swc/core-linux-x64-musl@1.14.0': + '@swc/core-linux-x64-musl@1.15.0': optional: true - '@swc/core-win32-arm64-msvc@1.14.0': + '@swc/core-win32-arm64-msvc@1.15.0': optional: true - '@swc/core-win32-ia32-msvc@1.14.0': + '@swc/core-win32-ia32-msvc@1.15.0': optional: true - '@swc/core-win32-x64-msvc@1.14.0': + '@swc/core-win32-x64-msvc@1.15.0': optional: true - '@swc/core@1.14.0': + '@swc/core@1.15.0': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.25 optionalDependencies: - '@swc/core-darwin-arm64': 1.14.0 - '@swc/core-darwin-x64': 1.14.0 - '@swc/core-linux-arm-gnueabihf': 1.14.0 - '@swc/core-linux-arm64-gnu': 1.14.0 - '@swc/core-linux-arm64-musl': 1.14.0 - '@swc/core-linux-x64-gnu': 1.14.0 - '@swc/core-linux-x64-musl': 1.14.0 - '@swc/core-win32-arm64-msvc': 1.14.0 - '@swc/core-win32-ia32-msvc': 1.14.0 - '@swc/core-win32-x64-msvc': 1.14.0 + '@swc/core-darwin-arm64': 1.15.0 + '@swc/core-darwin-x64': 1.15.0 + '@swc/core-linux-arm-gnueabihf': 1.15.0 + '@swc/core-linux-arm64-gnu': 1.15.0 + '@swc/core-linux-arm64-musl': 1.15.0 + '@swc/core-linux-x64-gnu': 1.15.0 + '@swc/core-linux-x64-musl': 1.15.0 + '@swc/core-win32-arm64-msvc': 1.15.0 + '@swc/core-win32-ia32-msvc': 1.15.0 + '@swc/core-win32-x64-msvc': 1.15.0 '@swc/counter@0.1.3': {} @@ -3790,52 +3781,52 @@ snapshots: '@tauri-apps/api@2.9.0': {} - '@tauri-apps/cli-darwin-arm64@2.9.2': + '@tauri-apps/cli-darwin-arm64@2.9.3': optional: true - '@tauri-apps/cli-darwin-x64@2.9.2': + '@tauri-apps/cli-darwin-x64@2.9.3': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.9.2': + '@tauri-apps/cli-linux-arm-gnueabihf@2.9.3': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.9.2': + '@tauri-apps/cli-linux-arm64-gnu@2.9.3': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.9.2': + '@tauri-apps/cli-linux-arm64-musl@2.9.3': optional: true - '@tauri-apps/cli-linux-riscv64-gnu@2.9.2': + '@tauri-apps/cli-linux-riscv64-gnu@2.9.3': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.9.2': + '@tauri-apps/cli-linux-x64-gnu@2.9.3': optional: true - '@tauri-apps/cli-linux-x64-musl@2.9.2': + '@tauri-apps/cli-linux-x64-musl@2.9.3': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.9.2': + '@tauri-apps/cli-win32-arm64-msvc@2.9.3': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.9.2': + '@tauri-apps/cli-win32-ia32-msvc@2.9.3': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.9.2': + '@tauri-apps/cli-win32-x64-msvc@2.9.3': optional: true - '@tauri-apps/cli@2.9.2': + '@tauri-apps/cli@2.9.3': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.9.2 - '@tauri-apps/cli-darwin-x64': 2.9.2 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.9.2 - '@tauri-apps/cli-linux-arm64-gnu': 2.9.2 - '@tauri-apps/cli-linux-arm64-musl': 2.9.2 - '@tauri-apps/cli-linux-riscv64-gnu': 2.9.2 - '@tauri-apps/cli-linux-x64-gnu': 2.9.2 - '@tauri-apps/cli-linux-x64-musl': 2.9.2 - '@tauri-apps/cli-win32-arm64-msvc': 2.9.2 - '@tauri-apps/cli-win32-ia32-msvc': 2.9.2 - '@tauri-apps/cli-win32-x64-msvc': 2.9.2 + '@tauri-apps/cli-darwin-arm64': 2.9.3 + '@tauri-apps/cli-darwin-x64': 2.9.3 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.9.3 + '@tauri-apps/cli-linux-arm64-gnu': 2.9.3 + '@tauri-apps/cli-linux-arm64-musl': 2.9.3 + '@tauri-apps/cli-linux-riscv64-gnu': 2.9.3 + '@tauri-apps/cli-linux-x64-gnu': 2.9.3 + '@tauri-apps/cli-linux-x64-musl': 2.9.3 + '@tauri-apps/cli-win32-arm64-msvc': 2.9.3 + '@tauri-apps/cli-win32-ia32-msvc': 2.9.3 + '@tauri-apps/cli-win32-x64-msvc': 2.9.3 '@tauri-apps/plugin-clipboard-manager@2.3.2': dependencies: @@ -3990,7 +3981,7 @@ snapshots: '@vitejs/plugin-react-swc@4.2.0(vite@7.1.12(@types/node@24.10.0)(sass@1.92.1)(yaml@2.8.1))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.43 - '@swc/core': 1.14.0 + '@swc/core': 1.15.0 vite: 7.1.12(@types/node@24.10.0)(sass@1.92.1)(yaml@2.8.1) transitivePeerDependencies: - '@swc/helpers' @@ -4060,7 +4051,7 @@ snapshots: balanced-match@1.0.2: {} - baseline-browser-mapping@2.8.23: {} + baseline-browser-mapping@2.8.24: {} boolbase@1.0.0: {} @@ -4080,7 +4071,7 @@ snapshots: browserslist@4.27.0: dependencies: - baseline-browser-mapping: 2.8.23 + baseline-browser-mapping: 2.8.24 caniuse-lite: 1.0.30001753 electron-to-chromium: 1.5.244 node-releases: 2.0.27 @@ -4645,13 +4636,13 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.0.0 - html-react-parser@5.2.7(@types/react@19.2.2)(react@19.2.0): + html-react-parser@5.2.8(@types/react@19.2.2)(react@19.2.0): dependencies: domhandler: 5.0.3 html-dom-parser: 5.1.1 react: 19.2.0 react-property: 2.0.2 - style-to-js: 1.1.18 + style-to-js: 1.1.19 optionalDependencies: '@types/react': 19.2.2 @@ -4680,8 +4671,6 @@ snapshots: inherits@2.0.4: {} - inline-style-parser@0.2.4: {} - inline-style-parser@0.2.6: {} internal-slot@1.1.0: @@ -5407,7 +5396,7 @@ snapshots: recharts@3.3.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@18.3.1)(react@19.2.0)(redux@5.0.1): dependencies: - '@reduxjs/toolkit': 2.9.2(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0) + '@reduxjs/toolkit': 2.10.1(react-redux@9.2.0(@types/react@19.2.2)(react@19.2.0)(redux@5.0.1))(react@19.2.0) clsx: 2.1.1 decimal.js-light: 2.5.1 es-toolkit: 1.41.0 @@ -5685,18 +5674,10 @@ snapshots: strip-bom@3.0.0: {} - style-to-js@1.1.18: - dependencies: - style-to-object: 1.0.11 - style-to-js@1.1.19: dependencies: style-to-object: 1.0.12 - style-to-object@1.0.11: - dependencies: - inline-style-parser: 0.2.4 - style-to-object@1.0.12: dependencies: inline-style-parser: 0.2.6 diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 16dbf24a..23b8c5a2 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3026,9 +3026,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -5289,9 +5289,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.34" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "log", "once_cell", diff --git a/src-tauri/resources-windows/fragments/service.wxs b/src-tauri/resources-windows/fragments/service.wxs index 835720c5..c17674bc 100644 --- a/src-tauri/resources-windows/fragments/service.wxs +++ b/src-tauri/resources-windows/fragments/service.wxs @@ -3,7 +3,6 @@ - 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�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 diff --git a/src-tauri/resources-windows/msi/top_banner.png b/src-tauri/resources-windows/msi/top_banner.png index 44ae7491526c1c9f4ed8a18555437eddf24469ea..9bbca64fc23d160c94a83ce2e03db7067fbe8996 100644 GIT binary patch literal 11726 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 literal 14293 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 From 70fcdcbdbfb8f2df3ee1a99357f876b4c7ad4abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Tue, 4 Nov 2025 22:34:15 +0100 Subject: [PATCH 4/9] Restore KeyPath --- src-tauri/resources-windows/fragments/service.wxs | 1 + 1 file changed, 1 insertion(+) diff --git a/src-tauri/resources-windows/fragments/service.wxs b/src-tauri/resources-windows/fragments/service.wxs index c17674bc..835720c5 100644 --- a/src-tauri/resources-windows/fragments/service.wxs +++ b/src-tauri/resources-windows/fragments/service.wxs @@ -3,6 +3,7 @@ + Date: Wed, 5 Nov 2025 11:20:58 +0100 Subject: [PATCH 5/9] avoid compiling service on macOS --- src-tauri/Cargo.toml | 8 -------- src-tauri/src/bin/defguard-service.rs | 6 +++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c148408f..1987b7a3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -38,7 +38,6 @@ name = "defguard-client" description = "Defguard desktop client" repository = "https://github.com/DefGuard/client" default-run = "defguard-client" -autobins = false authors.workspace = true edition.workspace = true homepage.workspace = true @@ -46,13 +45,6 @@ license-file.workspace = true rust-version.workspace = true version.workspace = true -[[bin]] -name = "defguard-client" - -[[bin]] -name = "defguard-service" -required-features = ["service"] - [build-dependencies] tauri-build = { version = "2", features = [] } tonic-prost-build.workspace = true diff --git a/src-tauri/src/bin/defguard-service.rs b/src-tauri/src/bin/defguard-service.rs index b7083e53..304461aa 100644 --- a/src-tauri/src/bin/defguard-service.rs +++ b/src-tauri/src/bin/defguard-service.rs @@ -3,7 +3,7 @@ //! This binary is meant to run as a daemon with root privileges //! and communicate with the desktop client over HTTP. -#[cfg(not(windows))] +#[cfg(not(any(windows, target_os = "macos")))] #[tokio::main] async fn main() -> anyhow::Result<()> { use clap::Parser; @@ -18,6 +18,10 @@ async fn main() -> anyhow::Result<()> { Ok(()) } +#[cfg(target_os = "macos")] +fn main() { + println!("defguard-service is not supported on macOS"); +} #[cfg(windows)] fn main() -> windows_service::Result<()> { From 645238f0a61e18a26c407a2876bae90b95d7a194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Wed, 5 Nov 2025 12:01:13 +0100 Subject: [PATCH 6/9] use main.wxs --- src-tauri/Cargo.toml | 8 + src-tauri/resources-windows/msi/main.wxs | 349 +++++++++++++++++++++++ src-tauri/src/bin/defguard-service.rs | 6 +- src-tauri/tauri.conf.json | 3 +- 4 files changed, 360 insertions(+), 6 deletions(-) create mode 100644 src-tauri/resources-windows/msi/main.wxs diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 1987b7a3..c148408f 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -38,6 +38,7 @@ name = "defguard-client" description = "Defguard desktop client" repository = "https://github.com/DefGuard/client" default-run = "defguard-client" +autobins = false authors.workspace = true edition.workspace = true homepage.workspace = true @@ -45,6 +46,13 @@ license-file.workspace = true rust-version.workspace = true version.workspace = true +[[bin]] +name = "defguard-client" + +[[bin]] +name = "defguard-service" +required-features = ["service"] + [build-dependencies] tauri-build = { version = "2", features = [] } tonic-prost-build.workspace = true diff --git a/src-tauri/resources-windows/msi/main.wxs b/src-tauri/resources-windows/msi/main.wxs new file mode 100644 index 00000000..522c15b9 --- /dev/null +++ b/src-tauri/resources-windows/msi/main.wxs @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{#if allow_downgrades}} + + {{else}} + + {{/if}} + + + Installed AND NOT UPGRADINGPRODUCTCODE + + + + + {{#if banner_path}} + + {{/if}} + {{#if dialog_image_path}} + + {{/if}} + {{#if license}} + + {{/if}} + + + + + + + {{#if homepage}} + + + + {{/if}} + + + + + + + + + + + + + + + + + WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed + + + + {{#unless license}} + + 1 + 1 + {{/unless}} + + + + + + + + + + + + + + + + + + + + + + + + + + + {{#each deep_link_protocols as |protocol| ~}} + + + + + + + + + + + {{/each~}} + + + + {{#each file_associations as |association| ~}} + {{#each association.ext as |ext| ~}} + + + + + + {{/each~}} + {{/each~}} + + + + + {{#if enable_elevated_update_task}} + + + + + + + + + + {{/if}} + {{resources}} + + + + + + + + + + + + + + + + + + + + + {{#each merge_modules as |msm| ~}} + + + + + + + + {{/each~}} + + + + + + {{#each resource_file_ids as |resource_file_id| ~}} + + {{/each~}} + + {{#if enable_elevated_update_task}} + + + + {{/if}} + + + + + + + + + + + + + + + + {{#each component_group_refs as |id| ~}} + + {{/each~}} + {{#each component_refs as |id| ~}} + + {{/each~}} + {{#each feature_group_refs as |id| ~}} + + {{/each~}} + {{#each feature_refs as |id| ~}} + + {{/each~}} + {{#each merge_refs as |id| ~}} + + {{/each~}} + + + {{#if install_webview}} + + + + + + + {{#if download_bootstrapper}} + + + + + + + {{/if}} + + + {{#if webview2_bootstrapper_path}} + + + + + + + + {{/if}} + + + {{#if webview2_installer_path}} + + + + + + + + {{/if}} + + {{/if}} + + {{#if enable_elevated_update_task}} + + + + + NOT(REMOVE) + + + + + + + (REMOVE = "ALL") AND NOT UPGRADINGPRODUCTCODE + + + {{/if}} + + + AUTOLAUNCHAPP AND NOT Installed + + + + + diff --git a/src-tauri/src/bin/defguard-service.rs b/src-tauri/src/bin/defguard-service.rs index 304461aa..b7083e53 100644 --- a/src-tauri/src/bin/defguard-service.rs +++ b/src-tauri/src/bin/defguard-service.rs @@ -3,7 +3,7 @@ //! This binary is meant to run as a daemon with root privileges //! and communicate with the desktop client over HTTP. -#[cfg(not(any(windows, target_os = "macos")))] +#[cfg(not(windows))] #[tokio::main] async fn main() -> anyhow::Result<()> { use clap::Parser; @@ -18,10 +18,6 @@ async fn main() -> anyhow::Result<()> { Ok(()) } -#[cfg(target_os = "macos")] -fn main() { - println!("defguard-service is not supported on macOS"); -} #[cfg(windows)] fn main() -> windows_service::Result<()> { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d3b64670..50e826c3 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -37,7 +37,8 @@ "componentRefs": [ "DefguardServiceFragment", "ProvisioningScriptFragment" - ] + ], + "template": "./resources-windows/msi/main.wxs" } }, "macOS": { From f3807102640e63d4249df3873c3d6a761fe8ed49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Wed, 5 Nov 2025 12:27:50 +0100 Subject: [PATCH 7/9] Fix main.wxs --- src-tauri/resources-windows/msi/main.wxs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src-tauri/resources-windows/msi/main.wxs b/src-tauri/resources-windows/msi/main.wxs index 522c15b9..45f30877 100644 --- a/src-tauri/resources-windows/msi/main.wxs +++ b/src-tauri/resources-windows/msi/main.wxs @@ -153,9 +153,6 @@ {{/each~}} {{/each~}} - - - {{#if enable_elevated_update_task}} @@ -251,7 +248,6 @@ Level="1" Absent="allow"> - From a9333149da0da5e72294152ac97863431ea1f54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 5 Nov 2025 13:06:48 +0100 Subject: [PATCH 8/9] push back expiry date --- .trivyignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.trivyignore b/.trivyignore index 26c4b951..10cc8500 100644 --- a/.trivyignore +++ b/.trivyignore @@ -1,2 +1,2 @@ # glib - transitive dependency -GHSA-wrw7-89jp-8q8g exp:2025-11-05 +GHSA-wrw7-89jp-8q8g exp:2025-12-05 From 1892f85b271e383d8b1f35bddfd4cdee239e78fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 5 Nov 2025 13:18:25 +0100 Subject: [PATCH 9/9] restore release workflow --- .github/workflows/release.yaml | 726 ++++++++++++++++----------------- 1 file changed, 363 insertions(+), 363 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index cb4ce8ac..577a0b99 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,382 +18,382 @@ jobs: draft: true generate_release_notes: true - # create-sbom: - # needs: [create-release] - # uses: ./.github/workflows/sbom.yml - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # ubuntu-22-04-build: - # needs: - # - create-release - # runs-on: - # - self-hosted - # - Linux - # - ${{ matrix.architecture }} - # strategy: - # fail-fast: false - # matrix: - # architecture: [ARM64, X64] - # include: - # - architecture: ARM64 - # deb_arch: arm64 - # binary_arch: aarch64 - # - architecture: X64 - # deb_arch: amd64 - # binary_arch: x86_64 - # container: - # image: ubuntu:22.04 - # env: - # DEBIAN_FRONTEND: noninteractive - # HOME: /root - # RUSTUP_HOME: /root/.rustup - # CARGO_HOME: /root/.cargo - # steps: - # - name: git install - # run: | - # apt-get update - # apt-get install -y git curl ca-certificates - # git config --global --add safe.directory '*' - # - uses: actions/checkout@v5 - # with: - # submodules: "recursive" - # - uses: pnpm/action-setup@v4 - # with: - # version: 10.17 - # run_install: false - # - uses: actions/setup-node@v5 - # with: - # node-version: "24" - # - name: Get pnpm store directory - # run: | - # echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} - # - name: Write release version - # run: | - # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - # echo Version: $VERSION - # echo "VERSION=$VERSION" >> ${GITHUB_ENV} - # - uses: actions/cache@v4 - # name: Setup pnpm cache - # with: - # path: ${{ env.STORE_PATH }} - # key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} - # restore-keys: | - # ${{ runner.os }}-pnpm-build-store- - # - name: Install Node dependencies - # run: pnpm install --frozen-lockfile - # - uses: dtolnay/rust-toolchain@stable - # - name: Install dependencies - # run: | - # apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm - # - name: Build packages - # uses: tauri-apps/tauri-action@v0.5.23 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # args: "--bundles deb" - # - name: Upload DEB - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - # asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}_ubuntu-22-04-lts.deb - # asset_content_type: application/octet-stream - # - name: Install ruby with deb-s3 - # if: matrix.build != 'freebsd' - # run: | - # apt-get install -y ruby - # gem install deb-s3 - # echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH - # - name: Upload DEB to APT repository - # run: | - # COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. + create-sbom: + needs: [create-release] + uses: ./.github/workflows/sbom.yml + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + ubuntu-22-04-build: + needs: + - create-release + runs-on: + - self-hosted + - Linux + - ${{ matrix.architecture }} + strategy: + fail-fast: false + matrix: + architecture: [ARM64, X64] + include: + - architecture: ARM64 + deb_arch: arm64 + binary_arch: aarch64 + - architecture: X64 + deb_arch: amd64 + binary_arch: x86_64 + container: + image: ubuntu:22.04 + env: + DEBIAN_FRONTEND: noninteractive + HOME: /root + RUSTUP_HOME: /root/.rustup + CARGO_HOME: /root/.cargo + steps: + - name: git install + run: | + apt-get update + apt-get install -y git curl ca-certificates + git config --global --add safe.directory '*' + - uses: actions/checkout@v5 + with: + submodules: "recursive" + - uses: pnpm/action-setup@v4 + with: + version: 10.17 + run_install: false + - uses: actions/setup-node@v5 + with: + node-version: "24" + - name: Get pnpm store directory + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} + - name: Write release version + run: | + VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + echo Version: $VERSION + echo "VERSION=$VERSION" >> ${GITHUB_ENV} + - uses: actions/cache@v4 + name: Setup pnpm cache + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-build-store- + - name: Install Node dependencies + run: pnpm install --frozen-lockfile + - uses: dtolnay/rust-toolchain@stable + - name: Install dependencies + run: | + apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm + - name: Build packages + uses: tauri-apps/tauri-action@v0.5.23 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: "--bundles deb" + - name: Upload DEB + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}_ubuntu-22-04-lts.deb + asset_content_type: application/octet-stream + - name: Install ruby with deb-s3 + if: matrix.build != 'freebsd' + run: | + apt-get install -y ruby + gem install deb-s3 + echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH + - name: Upload DEB to APT repository + run: | + COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. - # deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=bookworm --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=bookworm --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - # build-linux: - # needs: - # - create-release - # outputs: - # deb_sha256_amd64: ${{ steps.calculate-sha256.outputs.deb_sha256_amd64 }} - # runs-on: - # - self-hosted - # - Linux - # - ${{ matrix.architecture }} - # strategy: - # fail-fast: false - # matrix: - # architecture: [ARM64, X64] - # include: - # - architecture: ARM64 - # deb_arch: arm64 - # binary_arch: aarch64 - # - architecture: X64 - # deb_arch: amd64 - # binary_arch: x86_64 - # steps: - # - uses: actions/checkout@v5 - # with: - # submodules: "recursive" - # - name: Write release version - # run: | - # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - # echo Version: $VERSION - # echo "VERSION=$VERSION" >> ${GITHUB_ENV} - # - uses: actions/setup-node@v5 - # with: - # node-version: "24" - # - uses: pnpm/action-setup@v4 - # with: - # version: 10.17 - # run_install: false - # - name: Get pnpm store directory - # shell: bash - # run: | - # echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} - # - uses: actions/cache@v4 - # name: Setup pnpm cache - # with: - # path: ${{ env.STORE_PATH }} - # key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} - # restore-keys: | - # ${{ runner.os }}-pnpm-build-store- - # - name: Install Node dependencies - # run: pnpm install --frozen-lockfile - # - uses: dtolnay/rust-toolchain@stable - # - name: Install Linux dependencies - # run: | - # sudo apt-get update - # sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm - # - name: Build packages - # uses: tauri-apps/tauri-action@v0.5.23 # .24 seems broken, TODO: update when fixed - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # args: "--bundles deb,rpm" - # - name: Calculate DEB SHA256 - # id: calculate-sha256 - # if: matrix.deb_arch == 'amd64' - # run: | - # DEB_FILE="src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb" - # DEB_SHA256=$(sha256sum "$DEB_FILE" | cut -d ' ' -f1) - # echo "DEB SHA256: $DEB_SHA256" - # echo "DEB_SHA256=$DEB_SHA256" >> ${GITHUB_ENV} - # echo "deb_sha256_${{ matrix.deb_arch }}=$DEB_SHA256" >> ${GITHUB_OUTPUT} - # - name: Upload RPM - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: src-tauri/target/release/bundle/rpm/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm - # asset_name: defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm - # asset_content_type: application/octet-stream - # - name: Upload DEB - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - # asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - # asset_content_type: application/octet-stream - # - name: Install ruby with deb-s3 - # if: matrix.build != 'freebsd' - # run: | - # sudo apt-get install -y ruby - # gem install deb-s3 - # echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH - # - name: Upload DEB to APT repository #Add this to ubuntu 22.04 job (on merge dev -> main) with --codename=bookworm - # run: | - # COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. - # deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=trixie --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb - # - name: Rename client binary - # run: mv src-tauri/target/release/defguard-client defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # - name: Tar client binary - # uses: a7ul/tar-action@v1.2.0 - # with: - # command: c - # files: | - # defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # outPath: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # - name: Upload client archive - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_name: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_content_type: application/octet-stream - # - name: Rename daemon binary - # run: mv src-tauri/target/release/defguard-service defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # - name: Tar daemon binary - # uses: a7ul/tar-action@v1.2.0 - # with: - # command: c - # files: | - # defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # outPath: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # - name: Upload daemon archive - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_name: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_content_type: application/octet-stream + build-linux: + needs: + - create-release + outputs: + deb_sha256_amd64: ${{ steps.calculate-sha256.outputs.deb_sha256_amd64 }} + runs-on: + - self-hosted + - Linux + - ${{ matrix.architecture }} + strategy: + fail-fast: false + matrix: + architecture: [ARM64, X64] + include: + - architecture: ARM64 + deb_arch: arm64 + binary_arch: aarch64 + - architecture: X64 + deb_arch: amd64 + binary_arch: x86_64 + steps: + - uses: actions/checkout@v5 + with: + submodules: "recursive" + - name: Write release version + run: | + VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + echo Version: $VERSION + echo "VERSION=$VERSION" >> ${GITHUB_ENV} + - uses: actions/setup-node@v5 + with: + node-version: "24" + - uses: pnpm/action-setup@v4 + with: + version: 10.17 + run_install: false + - name: Get pnpm store directory + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV} + - uses: actions/cache@v4 + name: Setup pnpm cache + with: + path: ${{ env.STORE_PATH }} + key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-build-store- + - name: Install Node dependencies + run: pnpm install --frozen-lockfile + - uses: dtolnay/rust-toolchain@stable + - name: Install Linux dependencies + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm + - name: Build packages + uses: tauri-apps/tauri-action@v0.5.23 # .24 seems broken, TODO: update when fixed + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: "--bundles deb,rpm" + - name: Calculate DEB SHA256 + id: calculate-sha256 + if: matrix.deb_arch == 'amd64' + run: | + DEB_FILE="src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb" + DEB_SHA256=$(sha256sum "$DEB_FILE" | cut -d ' ' -f1) + echo "DEB SHA256: $DEB_SHA256" + echo "DEB_SHA256=$DEB_SHA256" >> ${GITHUB_ENV} + echo "deb_sha256_${{ matrix.deb_arch }}=$DEB_SHA256" >> ${GITHUB_OUTPUT} + - name: Upload RPM + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: src-tauri/target/release/bundle/rpm/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm + asset_name: defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm + asset_content_type: application/octet-stream + - name: Upload DEB + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + asset_content_type: application/octet-stream + - name: Install ruby with deb-s3 + if: matrix.build != 'freebsd' + run: | + sudo apt-get install -y ruby + gem install deb-s3 + echo "$(ruby -r rubygems -e 'puts Gem.user_dir')/bin" >> $GITHUB_PATH + - name: Upload DEB to APT repository #Add this to ubuntu 22.04 job (on merge dev -> main) with --codename=bookworm + run: | + COMPONENT=$([[ "${{ github.ref_name }}" == *"-"* ]] && echo "pre-release" || echo "release") # if tag contain "-" assume it's pre-release. + deb-s3 upload -l --bucket=apt.defguard.net --access-key-id=${{ secrets.AWS_ACCESS_KEY_APT }} --secret-access-key=${{ secrets.AWS_SECRET_KEY_APT }} --s3-region=eu-north-1 --no-fail-if-exists --codename=trixie --component="$COMPONENT" src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb + - name: Rename client binary + run: mv src-tauri/target/release/defguard-client defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + - name: Tar client binary + uses: a7ul/tar-action@v1.2.0 + with: + command: c + files: | + defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + outPath: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + - name: Upload client archive + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_name: defguard-client-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_content_type: application/octet-stream + - name: Rename daemon binary + run: mv src-tauri/target/release/defguard-service defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + - name: Tar daemon binary + uses: a7ul/tar-action@v1.2.0 + with: + command: c + files: | + defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + outPath: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + - name: Upload daemon archive + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_name: defguard-service-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_content_type: application/octet-stream - # - name: Rename dg binary - # run: mv src-tauri/target/release/dg dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # - name: Tar dg binary - # uses: a7ul/tar-action@v1.2.0 - # with: - # command: c - # files: | - # dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} - # outPath: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # - name: Upload dg archive - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz - # asset_content_type: application/octet-stream - # - name: Build dg deb - # uses: defGuard/fpm-action@main - # with: - # fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" - # fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb" - # - name: Upload DEB - # uses: actions/upload-release-asset@v1.0.2 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb - # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb - # asset_content_type: application/octet-stream - # - name: Build dg rpm - # uses: defGuard/fpm-action@main - # with: - # fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" - # fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm" - # - name: Upload RPM - # uses: actions/upload-release-asset@v1.0.2 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ needs.create-release.outputs.upload_url }} - # asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm - # asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm - # asset_content_type: application/octet-stream + - name: Rename dg binary + run: mv src-tauri/target/release/dg dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + - name: Tar dg binary + uses: a7ul/tar-action@v1.2.0 + with: + command: c + files: | + dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }} + outPath: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + - name: Upload dg archive + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.tar.gz + asset_content_type: application/octet-stream + - name: Build dg deb + uses: defGuard/fpm-action@main + with: + fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" + fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb" + - name: Upload DEB + uses: actions/upload-release-asset@v1.0.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb + asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb + asset_content_type: application/octet-stream + - name: Build dg rpm + uses: defGuard/fpm-action@main + with: + fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf" + fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm" + - name: Upload RPM + uses: actions/upload-release-asset@v1.0.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm + asset_name: dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm + asset_content_type: application/octet-stream - # apt-sign: - # needs: #Add needs: -ubuntu-22-04-build (on merge dev -> main) - # - build-linux - # runs-on: - # - self-hosted - # - Linux - # - X64 - # steps: - # - name: Sign APT repository - # run: | - # export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }} - # export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }} - # export AWS_REGION=eu-north-1 - # sudo apt update -y - # sudo apt install -y awscli curl jq + apt-sign: + needs: #Add needs: -ubuntu-22-04-build (on merge dev -> main) + - build-linux + runs-on: + - self-hosted + - Linux + - X64 + steps: + - name: Sign APT repository + run: | + export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_APT }} + export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY_APT }} + export AWS_REGION=eu-north-1 + sudo apt update -y + sudo apt install -y awscli curl jq - # for DIST in trixie bookworm; do - # aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release . + for DIST in trixie bookworm; do + aws s3 cp s3://apt.defguard.net/dists/${DIST}/Release . - # curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \ - # -H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \ - # -F "file=@Release" \ - # -o response.json + curl -X POST "${{ secrets.DEFGUARD_SIGNING_URL }}?signature_type=both" \ + -H "Authorization: Bearer ${{ secrets.DEFGUARD_SIGNING_API_KEY }}" \ + -F "file=@Release" \ + -o response.json - # cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg - # cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease + cat response.json | jq -r '.files["Release.gpg"].content' | base64 --decode > Release.gpg + cat response.json | jq -r '.files.Release.content' | base64 --decode > InRelease - # aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read - # aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read + aws s3 cp Release.gpg s3://apt.defguard.net/dists/${DIST}/ --acl public-read + aws s3 cp InRelease s3://apt.defguard.net/dists/${DIST}/ --acl public-read - # done - # (aws s3 ls s3://apt.defguard.net/dists/ --recursive; aws s3 ls s3://apt.defguard.net/pool/ --recursive) | awk '{print ""$4"
"}' > index.html - # aws s3 cp index.html s3://apt.defguard.net/ --acl public-read + done + (aws s3 ls s3://apt.defguard.net/dists/ --recursive; aws s3 ls s3://apt.defguard.net/pool/ --recursive) | awk '{print ""$4"
"}' > index.html + aws s3 cp index.html s3://apt.defguard.net/ --acl public-read - # update-aur: - # needs: - # - create-release - # - build-linux - # if: "!contains(github.ref_name, '-')" - # runs-on: - # - self-hosted - # - Linux - # - ${{ matrix.architecture }} - # container: archlinux:latest - # strategy: - # fail-fast: false - # matrix: - # architecture: [X64] - # include: - # - architecture: X64 - # deb_arch: amd64 - # binary_arch: x86_64 - # steps: - # - name: Install dependencies - # run: | - # pacman -Syu --noconfirm - # pacman -S --noconfirm git openssh base-devel - # - name: Create non-root user - # run: | - # useradd -m -G wheel -s /bin/bash builduser - # echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers - # - name: Setup SSH - # uses: webfactory/ssh-agent@v0.9.0 - # with: - # ssh-private-key: ${{ secrets.AUR_SSH_KEY }} - # - name: Checkout AUR repository - # run: | - # mkdir -p ~/.ssh - # ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts - # chmod 644 ~/.ssh/known_hosts - # export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" - # rm -rf aur-repo - # git clone ssh://aur@aur.archlinux.org/defguard-client.git aur-repo - # chown -R builduser:builduser aur-repo - # - name: Update PKGBUILD version - # run: | - # cd aur-repo - # VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) + update-aur: + needs: + - create-release + - build-linux + if: "!contains(github.ref_name, '-')" + runs-on: + - self-hosted + - Linux + - ${{ matrix.architecture }} + container: archlinux:latest + strategy: + fail-fast: false + matrix: + architecture: [X64] + include: + - architecture: X64 + deb_arch: amd64 + binary_arch: x86_64 + steps: + - name: Install dependencies + run: | + pacman -Syu --noconfirm + pacman -S --noconfirm git openssh base-devel + - name: Create non-root user + run: | + useradd -m -G wheel -s /bin/bash builduser + echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + - name: Setup SSH + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.AUR_SSH_KEY }} + - name: Checkout AUR repository + run: | + mkdir -p ~/.ssh + ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts + chmod 644 ~/.ssh/known_hosts + export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" + rm -rf aur-repo + git clone ssh://aur@aur.archlinux.org/defguard-client.git aur-repo + chown -R builduser:builduser aur-repo + - name: Update PKGBUILD version + run: | + cd aur-repo + VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1) - # echo "Updating to version: $VERSION" - # sed -i "s/^pkgver=.*/pkgver=$VERSION/" PKGBUILD + echo "Updating to version: $VERSION" + sed -i "s/^pkgver=.*/pkgver=$VERSION/" PKGBUILD - # AMD64_SHA="${{ needs.build-linux.outputs.deb_sha256_amd64 }}" + AMD64_SHA="${{ needs.build-linux.outputs.deb_sha256_amd64 }}" - # echo "AMD64 DEB SHA256: $AMD64_SHA" - # sed -i "s/^sha256sums_x86_64=.*/sha256sums_x86_64=('$AMD64_SHA')/" PKGBUILD - # - name: Update .SRCINFO - # run: | - # cd aur-repo - # sudo -u builduser makepkg --printsrcinfo > .SRCINFO - # - name: Commit and push changes - # run: | - # cd aur-repo - # chown -R builduser:builduser . - # sudo -u builduser git config user.name "Defguard Build System" - # sudo -u builduser git config user.email "community@defguard.net" - # sudo -u builduser git add PKGBUILD .SRCINFO - # sudo -u builduser git commit -m "Updated to $VERSION" - # sudo -u builduser git push - # cat PKGBUILD - # cat .SRCINFO + echo "AMD64 DEB SHA256: $AMD64_SHA" + sed -i "s/^sha256sums_x86_64=.*/sha256sums_x86_64=('$AMD64_SHA')/" PKGBUILD + - name: Update .SRCINFO + run: | + cd aur-repo + sudo -u builduser makepkg --printsrcinfo > .SRCINFO + - name: Commit and push changes + run: | + cd aur-repo + chown -R builduser:builduser . + sudo -u builduser git config user.name "Defguard Build System" + sudo -u builduser git config user.email "community@defguard.net" + sudo -u builduser git add PKGBUILD .SRCINFO + sudo -u builduser git commit -m "Updated to $VERSION" + sudo -u builduser git push + cat PKGBUILD + cat .SRCINFO # Builds Windows MSI and uploads it as artifact build-windows: