From e6733bcb6b9427d55744f55a1e1fbbd4d2b2d6b8 Mon Sep 17 00:00:00 2001 From: Luis-Hebendanz Date: Thu, 14 Sep 2023 14:34:40 +0200 Subject: [PATCH 1/3] Added assets CI --- .gitea/workflows/ui_assets.yaml | 45 +++++++++++++++++++++++++++++++++ pkgs/ui/nix/ui-assets.nix | 4 +-- pkgs/ui/nix/update-ui-assets.sh | 28 ++++++++++++++++---- 3 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 .gitea/workflows/ui_assets.yaml diff --git a/.gitea/workflows/ui_assets.yaml b/.gitea/workflows/ui_assets.yaml new file mode 100644 index 00000000..af8b1cd6 --- /dev/null +++ b/.gitea/workflows/ui_assets.yaml @@ -0,0 +1,45 @@ +name: assets +on: + pull_request: + push: + branches: + - main + - Qubasa-main +jobs: + test: + runs-on: nix + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Get changed files using defaults + id: changed-files + uses: tj-actions/changed-files@v32 + with: + fetch-depth: 2 + + - name: Check if UI files are in the list of modified files + run: | + set -xeuo pipefail + echo "Modified files: $MODIFIED_FILES" + if echo "$MODIFIED_FILES" | grep -q "pkgs/ui/" \ + || echo "$MODIFIED_FILES" | grep -q ".gitea/workflows/ui_assets.yaml"; then + + echo "UI files have changed" + ./pkgs/ui/nix/update-ui-assets.sh + + + # git push if we have a diff + if [[ -n $(git diff) ]]; then + git config --global user.email "ui_assets[bot]@mail.clan.lol" + git config --global user.name "ui_assets[bot]" + git commit -am "update ui-assets.nix" + echo "Current branch: $GITHUB_REF_NAME" + git push origin HEAD:$GITHUB_REF_NAME + fi + else + echo "No UI files changed. Skipping asset build and push" + fi + env: + MODIFIED_FILES: ${{ steps.changed-files.outputs.modified_files }} + GITEA_TOKEN: ${{ secrets.TEA_TOKEN_QUBASA }} diff --git a/pkgs/ui/nix/ui-assets.nix b/pkgs/ui/nix/ui-assets.nix index 2a6197d5..2091dc87 100644 --- a/pkgs/ui/nix/ui-assets.nix +++ b/pkgs/ui/nix/ui-assets.nix @@ -1,5 +1,5 @@ { fetchzip }: fetchzip { - url = "https://git.clan.lol/api/packages/clan/generic/ui/1cf814b4c19a9c30d19061417bc9cb85d7518c0d/assets.tar.gz?token=35dcd15cf8b707f4436a766f955c75a805132ea0"; - sha256 = "18cgzf01f3pw6ck3mllgy6l5szfz0ggiyd42crf02nc66drajzg4"; + url = "https://git.clan.lol/api/packages/clan/generic/ui/0p4yzm4rj954lfqw3fwd93lijs3658ml2q47f6h1hl9jzsb4hmg3/assets.tar.gz"; + sha256 = "0p4yzm4rj954lfqw3fwd93lijs3658ml2q47f6h1hl9jzsb4hmg3"; } diff --git a/pkgs/ui/nix/update-ui-assets.sh b/pkgs/ui/nix/update-ui-assets.sh index 5c4b8de3..6d420c74 100755 --- a/pkgs/ui/nix/update-ui-assets.sh +++ b/pkgs/ui/nix/update-ui-assets.sh @@ -1,4 +1,5 @@ # shellcheck shell=bash +set -xeuo pipefail # GITEA_TOKEN if [[ -z "${GITEA_TOKEN:-}" ]]; then @@ -6,20 +7,37 @@ if [[ -z "${GITEA_TOKEN:-}" ]]; then exit 1 fi -sha=$(git rev-parse HEAD) +DEPS=$(nix shell --inputs-from '.#' "nixpkgs#gnutar" "nixpkgs#curl" "nixpkgs#gzip" -c bash -c "echo \$PATH") +export PATH=$PATH:$DEPS + + PROJECT_DIR=$(git rev-parse --show-toplevel) tmpdir=$(mktemp -d) cleanup() { rm -rf "$tmpdir"; } trap cleanup EXIT + nix build '.#ui' --out-link "$tmpdir/result" + tar --transform 's,^\.,assets,' -czvf "$tmpdir/assets.tar.gz" -C "$tmpdir"/result/lib/node_modules/*/out . -url="https://git.clan.lol/api/packages/clan/generic/ui/$sha/assets.tar.gz?token=$GITEA_TOKEN" -curl --upload-file "$tmpdir/assets.tar.gz" -X PUT "$url" -hash=$(nix-prefetch-url --unpack "$url") +NAR_HASH=$(nix-prefetch-url --unpack file://<(cat "$tmpdir/assets.tar.gz")) + + +url="https://git.clan.lol/api/packages/clan/generic/ui/$NAR_HASH/assets.tar.gz" +curl -v --upload-file "$tmpdir/assets.tar.gz" -X PUT "$url?token=$GITEA_TOKEN" + +TEST_URL=$(nix-prefetch-url --unpack "$url") +if [[ $TEST_URL != "$NAR_HASH" ]]; then + echo "Prefetch failed. Expected $NAR_HASH, got $TEST_URL" + exit 1 +fi + + cat > "$PROJECT_DIR/pkgs/ui/nix/ui-assets.nix" < Date: Thu, 14 Sep 2023 14:36:18 +0200 Subject: [PATCH 2/3] Changed to on_push --- .gitea/workflows/ui_assets.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/ui_assets.yaml b/.gitea/workflows/ui_assets.yaml index af8b1cd6..9e245a49 100644 --- a/.gitea/workflows/ui_assets.yaml +++ b/.gitea/workflows/ui_assets.yaml @@ -1,6 +1,5 @@ name: assets on: - pull_request: push: branches: - main From c948e645c2e826a404e60a37064d3507aa02ad6f Mon Sep 17 00:00:00 2001 From: "ui_assets[bot]" Date: Thu, 14 Sep 2023 12:37:24 +0000 Subject: [PATCH 3/3] update ui-assets.nix --- pkgs/ui/nix/ui-assets.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/ui/nix/ui-assets.nix b/pkgs/ui/nix/ui-assets.nix index 2091dc87..15d59dc2 100644 --- a/pkgs/ui/nix/ui-assets.nix +++ b/pkgs/ui/nix/ui-assets.nix @@ -1,5 +1,5 @@ { fetchzip }: fetchzip { - url = "https://git.clan.lol/api/packages/clan/generic/ui/0p4yzm4rj954lfqw3fwd93lijs3658ml2q47f6h1hl9jzsb4hmg3/assets.tar.gz"; - sha256 = "0p4yzm4rj954lfqw3fwd93lijs3658ml2q47f6h1hl9jzsb4hmg3"; + url = "https://git.clan.lol/api/packages/clan/generic/ui/1w5dz4lmk0xm0cvz9g07a9i1xdjj8pfj486s9w0a0qd4s3jj3rpr/assets.tar.gz"; + sha256 = "1w5dz4lmk0xm0cvz9g07a9i1xdjj8pfj486s9w0a0qd4s3jj3rpr"; }