diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index 637f317..f331bc0 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -49,16 +49,31 @@ jobs: - name: Build project run: cargo build --release --target ${{ matrix.target_triple }} - - name: Upload artifacts + - name: Create release package + run: | + mv target/${{ matrix.target_triple }}/release/${{ matrix.artifact_name }} . + mkdir -p release-package + mv ${{ matrix.artifact_name }} release-package/ + cd release-package + zip -r ../${{ matrix.release_name }}.zip . + + - name: Upload zipped artifact uses: actions/upload-artifact@v4 with: name: ${{ matrix.release_name }} - path: target/${{ matrix.target_triple }}/release/${{ matrix.artifact_name }} + path: ${{ matrix.release_name }}.zip retention-days: 30 build-windows: name: Build Windows runs-on: windows-latest + strategy: + matrix: + include: + - target: x86_64 + target_triple: x86_64-pc-windows-msvc + artifact_name: gemini-keychecker.exe + release_name: gemini-keychecker-windows-x86_64 steps: - name: Checkout code uses: actions/checkout@v4 @@ -66,7 +81,7 @@ jobs: - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: - targets: x86_64-pc-windows-msvc + targets: ${{ matrix.target_triple }} - name: Cache cargo dependencies uses: actions/cache@v4 @@ -80,11 +95,69 @@ jobs: ${{ runner.os }}-cargo- - name: Build project - run: cargo build --release --target x86_64-pc-windows-msvc + run: cargo build --release --target ${{ matrix.target_triple }} - - name: Upload artifacts + - name: Create release package + run: | + mkdir -p release-package + mv target/${{ matrix.target_triple }}/release/${{ matrix.artifact_name }} release-package/ + Compress-Archive -Path 'release-package\*' -DestinationPath "${{ matrix.release_name }}.zip" -CompressionLevel Optimal -Force + + - name: Upload zipped artifact uses: actions/upload-artifact@v4 with: - name: gemini-keychecker-windows-x86_64 - path: target/x86_64-pc-windows-msvc/release/gemini-keychecker.exe + name: ${{ matrix.release_name }} + path: ${{ matrix.release_name }}.zip + retention-days: 30 + + build-macos: + name: Build macOS + runs-on: macos-latest + strategy: + matrix: + include: + - target: x86_64 + target_triple: x86_64-apple-darwin + artifact_name: gemini-keychecker + release_name: gemini-keychecker-macos-x86_64 + - target: aarch64 + target_triple: aarch64-apple-darwin + artifact_name: gemini-keychecker + release_name: gemini-keychecker-macos-aarch64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target_triple }} + + - name: Cache cargo dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - name: Build project + run: cargo build --release --target ${{ matrix.target_triple }} + + - name: Create release package + run: | + mv target/${{ matrix.target_triple }}/release/${{ matrix.artifact_name }} . + mkdir -p release-package + mv ${{ matrix.artifact_name }} release-package/ + cd release-package + zip -r ../${{ matrix.release_name }}.zip . + + - name: Upload zipped artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.release_name }} + path: ${{ matrix.release_name }}.zip retention-days: 30 diff --git a/release.sh b/release.sh new file mode 100644 index 0000000..0ecb1ca --- /dev/null +++ b/release.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e +VERSION=$1 +if [ -z "$VERSION" ]; then + echo "Usage: ./release.sh (e.g., 1.0.0)" + exit 1 +fi +cargo update +cargo set-version $VERSION +cargo check +git add Cargo.toml Cargo.lock +git commit -m "Update to v$VERSION" +git push +git tag -a "v$VERSION" -m "Release v$VERSION" +git push origin "v$VERSION" \ No newline at end of file diff --git a/src/validation/mod.rs b/src/validation/mod.rs index 4c12598..aed2ea8 100644 --- a/src/validation/mod.rs +++ b/src/validation/mod.rs @@ -73,6 +73,6 @@ pub static CACHE_CONTENT_TEST_BODY: LazyLock = LazyLock::new(|| { role: Some("user".to_string()), }], generation_config: None, - ttl: Some("300s".to_string()), + ttl: Some("30s".to_string()), } });