kitgit

tirbofish/dropbear · diff

910aaef · Thribhu K

ci: new fix jarvis, run github actions

Unverified

diff --git a/.github/workflows/create_executable.yaml b/.github/workflows/create_executable.yaml
index c09330a..30cef50 100644
--- a/.github/workflows/create_executable.yaml
+++ b/.github/workflows/create_executable.yaml
@@ -17,55 +17,18 @@ jobs:
             os_name: windows-x64
             target: x86_64-pc-windows-msvc
             ext: .exe
-            slang_platform: windows-x86_64
-            slang_ext: zip
           - os: ubuntu-latest
             os_name: linux-x64
             target: x86_64-unknown-linux-gnu
             ext: ""
-            slang_platform: linux-x86_64
-            slang_ext: tar.gz
           - os: macos-latest
             os_name: macos-arm64
             target: aarch64-apple-darwin
             ext: ""
-            slang_platform: macos-aarch64
-            slang_ext: zip
     steps:
       - uses: actions/checkout@v4
         with:
           submodules: 'recursive'
-
-      - name: Get latest Slang release
-        id: slang_release
-        uses: pozetroninc/github-action-get-latest-release@master
-        with:
-          repository: shader-slang/slang
-          excludes: "prerelease, draft"
-          token: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Download and setup Slang
-        shell: bash
-        run: |
-          VERSION=${{ steps.slang_release.outputs.release }}
-          VERSION=${VERSION#v}
-
-          echo "Downloading Slang ${VERSION}"
-
-          SLANG_FILE="slang-${VERSION}-${{ matrix.slang_platform }}.${{ matrix.slang_ext }}"
-          SLANG_URL="https://github.com/shader-slang/slang/releases/download/v${VERSION}/${SLANG_FILE}"
-
-          curl -L -o "${SLANG_FILE}" "${SLANG_URL}"
-
-          mkdir -p slang
-          if [ "${{ matrix.slang_ext }}" = "zip" ]; then
-            unzip -q "${SLANG_FILE}" -d slang
-          else
-            tar -xzf "${SLANG_FILE}" -C slang
-          fi
-
-          echo "SLANG_DIR=$(pwd)/slang" >> $GITHUB_ENV
-
       - name: Set up JDK 21
         uses: actions/setup-java@v4
         with:
@@ -108,7 +71,8 @@ jobs:
         with:
           targets: ${{ matrix.target }}
       - name: build eucalyptus packages
-        # run: cargo build --release --package eucalyptus-core --package eucalyptus-editor --package magna-carta --package redback-runtime --target ${{ matrix.target }}
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: cargo build --release --package eucalyptus-core --package eucalyptus-editor --package magna-carta --target ${{ matrix.target }}
       - name: prepare the artifact
         run: |
diff --git a/crates/slank/build.rs b/crates/slank/build.rs
index 15fd3d6..21f597b 100644
--- a/crates/slank/build.rs
+++ b/crates/slank/build.rs
@@ -17,7 +17,11 @@ fn main() -> anyhow::Result<()> {
 fn find_or_download_slangc() -> anyhow::Result<PathBuf> {
     if let Ok(path) = std::env::var("SLANG_DIR") {
         let path = PathBuf::from(path);
-        let exe_path = path.join("bin").join("slangc");
+        let exe_path = path.join("bin").join(if cfg!(target_os = "windows") {
+            "slangc.exe"
+        } else {
+            "slangc"
+        });
         if is_valid_slangc(&exe_path)? {
             return Ok(path);
         } else {
@@ -187,14 +191,24 @@ fn get_latest_slang_version() -> anyhow::Result<String> {
     }
 
     let client = reqwest::blocking::Client::new();
-    let response = client
+    let mut request = client
         .get("https://api.github.com/repos/shader-slang/slang/releases/latest")
-        .header(reqwest::header::USER_AGENT, "dropbear-slank-build")
+        .header(reqwest::header::USER_AGENT, "dropbear-slank-build");
+
+    // Add GitHub token if available for authenticated requests (avoids rate limiting)
+    if let Ok(token) = std::env::var("GITHUB_TOKEN") {
+        request = request.header(reqwest::header::AUTHORIZATION, format!("Bearer {}", token));
+    }
+
+    let response = request
         .send()
         .map_err(|e| anyhow::anyhow!("Failed to fetch latest version from GitHub: {}", e))?;
 
     if !response.status().is_success() {
-        return Err(anyhow::anyhow!("GitHub API failed with status: {}", response.status()));
+        return Err(anyhow::anyhow!(
+            "GitHub API failed with status: {}. If rate limited, set GITHUB_TOKEN environment variable.",
+            response.status()
+        ));
     }
 
     let release: Release = response.json()