Download .github/workflows/ci.yml from SaylorTwift/forgecode: direct link, hf CLI and curl.
- Browser
- Download file 11.1 kB
-
https://huggingface.co/SaylorTwift/forgecode/resolve/main/.github/workflows/ci.yml
- Command line
-
hf download hf://SaylorTwift/forgecode/.github/workflows/ci.yml
-
curl -L -o ci.yml https://huggingface.co/SaylorTwift/forgecode/resolve/main/.github/workflows/ci.yml
11.1 kB
| # ------------------------------------------------------------------- | |
| # ------------------------------- WARNING --------------------------- | |
| # ------------------------------------------------------------------- | |
| # | |
| # This file was automatically generated by gh-workflows using the | |
| # gh-workflow-gen bin. You should add and commit this file to your | |
| # git repository. **DO NOT EDIT THIS FILE BY HAND!** Any manual changes | |
| # will be lost if the file is regenerated. | |
| # | |
| # To make modifications, update your `build.rs` configuration to adjust | |
| # the workflow description as needed, then regenerate this file to apply | |
| # those changes. | |
| # | |
| # ------------------------------------------------------------------- | |
| # ----------------------------- END WARNING ------------------------- | |
| # ------------------------------------------------------------------- | |
| name: ci | |
| env: | |
| RUSTFLAGS: '-Dwarnings' | |
| OPENROUTER_API_KEY: ${{secrets.OPENROUTER_API_KEY}} | |
| 'on': | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - labeled | |
| branches: | |
| - main | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - v* | |
| jobs: | |
| build: | |
| name: Build and Test | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Protobuf Compiler | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Rust Toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - name: Install cargo-llvm-cov | |
| run: cargo install cargo-llvm-cov | |
| - name: Generate coverage | |
| run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info | |
| zsh_rprompt_perf: | |
| name: 'Performance: zsh rprompt' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Protobuf Compiler | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Rust Toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - name: Run performance benchmark | |
| run: './scripts/benchmark.sh --threshold 60 zsh rprompt' | |
| draft_release: | |
| needs: | |
| - build | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| name: Draft Release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| outputs: | |
| crate_release_name: ${{ steps.set_output.outputs.crate_release_name }} | |
| crate_release_id: ${{ steps.set_output.outputs.crate_release_id }} | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - id: create_release | |
| name: Draft Release | |
| uses: release-drafter/release-drafter@v7 | |
| with: | |
| config-name: release-drafter.yml | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - id: set_output | |
| name: Export Outputs | |
| run: echo "crate_release_id=${{ steps.create_release.outputs.id }}" >> $GITHUB_OUTPUT && echo "crate_release_name=${{ steps.create_release.outputs.tag_name }}" >> $GITHUB_OUTPUT | |
| draft_release_pr: | |
| if: 'github.event_name == ''pull_request'' && contains(github.event.pull_request.labels.*.name, ''ci: build all targets'')' | |
| name: Draft Release for PR | |
| runs-on: ubuntu-latest | |
| outputs: | |
| crate_release_name: ${{ steps.set_output.outputs.crate_release_name }} | |
| crate_release_id: ${{ steps.set_output.outputs.crate_release_id }} | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - id: set_output | |
| name: Set Release Version | |
| run: echo "crate_release_name=pr-build-${{ github.event.number }}" >> $GITHUB_OUTPUT && echo "crate_release_id=pr-build-${{ github.event.number }}" >> $GITHUB_OUTPUT | |
| build_release: | |
| needs: | |
| - draft_release | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| name: build-release | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| strategy: | |
| matrix: | |
| include: | |
| - binary_name: forge-x86_64-unknown-linux-musl | |
| binary_path: target/x86_64-unknown-linux-musl/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: x86_64-unknown-linux-musl | |
| - binary_name: forge-aarch64-unknown-linux-musl | |
| binary_path: target/aarch64-unknown-linux-musl/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-unknown-linux-musl | |
| - binary_name: forge-x86_64-unknown-linux-gnu | |
| binary_path: target/x86_64-unknown-linux-gnu/release/forge | |
| cross: 'false' | |
| os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| - binary_name: forge-aarch64-unknown-linux-gnu | |
| binary_path: target/aarch64-unknown-linux-gnu/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-unknown-linux-gnu | |
| - binary_name: forge-x86_64-apple-darwin | |
| binary_path: target/x86_64-apple-darwin/release/forge | |
| cross: 'false' | |
| os: macos-latest | |
| target: x86_64-apple-darwin | |
| - binary_name: forge-aarch64-apple-darwin | |
| binary_path: target/aarch64-apple-darwin/release/forge | |
| cross: 'false' | |
| os: macos-latest | |
| target: aarch64-apple-darwin | |
| - binary_name: forge-x86_64-pc-windows-msvc.exe | |
| binary_path: target/x86_64-pc-windows-msvc/release/forge.exe | |
| cross: 'false' | |
| os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| - binary_name: forge-aarch64-pc-windows-msvc.exe | |
| binary_path: target/aarch64-pc-windows-msvc/release/forge.exe | |
| cross: 'false' | |
| os: windows-latest | |
| target: aarch64-pc-windows-msvc | |
| - binary_name: forge-aarch64-linux-android | |
| binary_path: target/aarch64-linux-android/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-linux-android | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Protobuf Compiler | |
| if: ${{ matrix.cross == 'false' }} | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Cross Toolchain | |
| if: ${{ matrix.cross == 'false' }} | |
| uses: taiki-e/setup-cross-toolchain-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| - name: Add Rust target | |
| if: ${{ matrix.cross == 'false' }} | |
| run: rustup target add ${{ matrix.target }} | |
| - name: Set Rust Flags | |
| if: '!(contains(matrix.target, ''-unknown-linux-'') || contains(matrix.target, ''-android''))' | |
| run: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV | |
| - name: Build Binary | |
| uses: ClementTsang/[email protected] | |
| with: | |
| command: build --release | |
| args: '--target ${{ matrix.target }}' | |
| use-cross: ${{ matrix.cross }} | |
| cross-version: '0.2.5' | |
| env: | |
| RUSTFLAGS: ${{ env.RUSTFLAGS }} | |
| POSTHOG_API_SECRET: ${{secrets.POSTHOG_API_SECRET}} | |
| APP_VERSION: ${{ needs.draft_release.outputs.crate_release_name }} | |
| - name: Copy Binary | |
| run: cp ${{ matrix.binary_path }} ${{ matrix.binary_name }} | |
| - name: Upload to Release | |
| uses: xresloader/upload-to-github-release@v1 | |
| with: | |
| release_id: ${{ needs.draft_release.outputs.crate_release_id }} | |
| file: ${{ matrix.binary_name }} | |
| overwrite: 'true' | |
| build_release_pr: | |
| needs: | |
| - draft_release_pr | |
| if: 'github.event_name == ''pull_request'' && contains(github.event.pull_request.labels.*.name, ''ci: build all targets'')' | |
| name: build-release | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| strategy: | |
| matrix: | |
| include: | |
| - binary_name: forge-x86_64-unknown-linux-musl | |
| binary_path: target/x86_64-unknown-linux-musl/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: x86_64-unknown-linux-musl | |
| - binary_name: forge-aarch64-unknown-linux-musl | |
| binary_path: target/aarch64-unknown-linux-musl/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-unknown-linux-musl | |
| - binary_name: forge-x86_64-unknown-linux-gnu | |
| binary_path: target/x86_64-unknown-linux-gnu/release/forge | |
| cross: 'false' | |
| os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| - binary_name: forge-aarch64-unknown-linux-gnu | |
| binary_path: target/aarch64-unknown-linux-gnu/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-unknown-linux-gnu | |
| - binary_name: forge-x86_64-apple-darwin | |
| binary_path: target/x86_64-apple-darwin/release/forge | |
| cross: 'false' | |
| os: macos-latest | |
| target: x86_64-apple-darwin | |
| - binary_name: forge-aarch64-apple-darwin | |
| binary_path: target/aarch64-apple-darwin/release/forge | |
| cross: 'false' | |
| os: macos-latest | |
| target: aarch64-apple-darwin | |
| - binary_name: forge-x86_64-pc-windows-msvc.exe | |
| binary_path: target/x86_64-pc-windows-msvc/release/forge.exe | |
| cross: 'false' | |
| os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| - binary_name: forge-aarch64-pc-windows-msvc.exe | |
| binary_path: target/aarch64-pc-windows-msvc/release/forge.exe | |
| cross: 'false' | |
| os: windows-latest | |
| target: aarch64-pc-windows-msvc | |
| - binary_name: forge-aarch64-linux-android | |
| binary_path: target/aarch64-linux-android/release/forge | |
| cross: 'true' | |
| os: ubuntu-latest | |
| target: aarch64-linux-android | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v6 | |
| - name: Setup Protobuf Compiler | |
| if: ${{ matrix.cross == 'false' }} | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Cross Toolchain | |
| if: ${{ matrix.cross == 'false' }} | |
| uses: taiki-e/setup-cross-toolchain-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| - name: Add Rust target | |
| if: ${{ matrix.cross == 'false' }} | |
| run: rustup target add ${{ matrix.target }} | |
| - name: Set Rust Flags | |
| if: '!(contains(matrix.target, ''-unknown-linux-'') || contains(matrix.target, ''-android''))' | |
| run: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV | |
| - name: Build Binary | |
| uses: ClementTsang/[email protected] | |
| with: | |
| command: build --release | |
| args: '--target ${{ matrix.target }}' | |
| use-cross: ${{ matrix.cross }} | |
| cross-version: '0.2.5' | |
| env: | |
| RUSTFLAGS: ${{ env.RUSTFLAGS }} | |
| POSTHOG_API_SECRET: ${{secrets.POSTHOG_API_SECRET}} | |
| APP_VERSION: ${{ needs.draft_release_pr.outputs.crate_release_name }} | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |