112
.github/workflows/rust-release.yml
vendored
112
.github/workflows/rust-release.yml
vendored
@@ -53,10 +53,6 @@ jobs:
|
|||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: codex-rs
|
working-directory: codex-rs
|
||||||
env:
|
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
CARGO_INCREMENTAL: "0"
|
|
||||||
SCCACHE_CACHE_SIZE: 10G
|
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -92,80 +88,14 @@ jobs:
|
|||||||
~/.cargo/registry/index/
|
~/.cargo/registry/index/
|
||||||
~/.cargo/registry/cache/
|
~/.cargo/registry/cache/
|
||||||
~/.cargo/git/db/
|
~/.cargo/git/db/
|
||||||
key: cargo-${{ matrix.runner }}-${{ matrix.target }}-release-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
|
${{ github.workspace }}/codex-rs/target/
|
||||||
restore-keys: |
|
key: cargo-${{ matrix.runner }}-${{ matrix.target }}-release-${{ hashFiles('**/Cargo.lock') }}
|
||||||
cargo-${{ matrix.runner }}-${{ matrix.target }}-release-
|
|
||||||
|
|
||||||
- name: Install sccache
|
|
||||||
uses: taiki-e/install-action@0c5db7f7f897c03b771660e91d065338615679f4 # v2
|
|
||||||
with:
|
|
||||||
tool: sccache
|
|
||||||
version: 0.7.5
|
|
||||||
|
|
||||||
- name: Configure sccache backend
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
if [[ -n "${ACTIONS_CACHE_URL:-}" && -n "${ACTIONS_RUNTIME_TOKEN:-}" ]]; then
|
|
||||||
echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV"
|
|
||||||
echo "Using sccache GitHub backend"
|
|
||||||
else
|
|
||||||
echo "SCCACHE_GHA_ENABLED=false" >> "$GITHUB_ENV"
|
|
||||||
echo "SCCACHE_DIR=${{ github.workspace }}/.sccache" >> "$GITHUB_ENV"
|
|
||||||
echo "Using sccache local disk + actions/cache fallback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Restore sccache cache (fallback)
|
|
||||||
if: ${{ env.SCCACHE_GHA_ENABLED != 'true' }}
|
|
||||||
id: cache_sccache_restore
|
|
||||||
uses: actions/cache/restore@v4
|
|
||||||
with:
|
|
||||||
path: ${{ github.workspace }}/.sccache/
|
|
||||||
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-release-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}
|
|
||||||
restore-keys: |
|
|
||||||
sccache-${{ matrix.runner }}-${{ matrix.target }}-release-${{ hashFiles('**/Cargo.lock') }}-
|
|
||||||
sccache-${{ matrix.runner }}-${{ matrix.target }}-release-
|
|
||||||
|
|
||||||
- if: ${{ matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl'}}
|
|
||||||
name: Prepare APT cache directories (musl)
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
sudo mkdir -p /var/cache/apt/archives /var/lib/apt/lists
|
|
||||||
sudo chown -R "$USER:$USER" /var/cache/apt /var/lib/apt/lists
|
|
||||||
|
|
||||||
- if: ${{ matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl'}}
|
|
||||||
name: Restore APT cache (musl)
|
|
||||||
id: cache_apt_restore
|
|
||||||
uses: actions/cache/restore@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/var/cache/apt
|
|
||||||
key: apt-${{ matrix.runner }}-${{ matrix.target }}-v1
|
|
||||||
|
|
||||||
- if: ${{ matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl'}}
|
- if: ${{ matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl'}}
|
||||||
name: Install musl build tools
|
name: Install musl build tools
|
||||||
env:
|
|
||||||
DEBIAN_FRONTEND: noninteractive
|
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
sudo apt-get update
|
||||||
sudo apt-get -y update -o Acquire::Retries=3
|
sudo apt-get install -y musl-tools pkg-config
|
||||||
sudo apt-get -y install --no-install-recommends musl-tools pkg-config
|
|
||||||
|
|
||||||
- name: Install cargo-chef
|
|
||||||
uses: taiki-e/install-action@0c5db7f7f897c03b771660e91d065338615679f4 # v2
|
|
||||||
with:
|
|
||||||
tool: cargo-chef
|
|
||||||
version: 0.1.71
|
|
||||||
|
|
||||||
- name: Pre-warm dependency cache (cargo-chef)
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
RECIPE="${RUNNER_TEMP}/chef-recipe.json"
|
|
||||||
cargo chef prepare --recipe-path "$RECIPE"
|
|
||||||
cargo chef cook --recipe-path "$RECIPE" --target ${{ matrix.target }} --release --all-features
|
|
||||||
|
|
||||||
- name: Cargo build
|
- name: Cargo build
|
||||||
run: cargo build --target ${{ matrix.target }} --release --bin codex --bin codex-responses-api-proxy
|
run: cargo build --target ${{ matrix.target }} --release --bin codex --bin codex-responses-api-proxy
|
||||||
@@ -397,40 +327,6 @@ jobs:
|
|||||||
zstd -T0 -19 --rm "$dest/$base"
|
zstd -T0 -19 --rm "$dest/$base"
|
||||||
done
|
done
|
||||||
|
|
||||||
- name: Save APT cache (musl)
|
|
||||||
if: always() && !cancelled() && (matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-musl') && steps.cache_apt_restore.outputs.cache-hit != 'true'
|
|
||||||
continue-on-error: true
|
|
||||||
uses: actions/cache/save@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/var/cache/apt
|
|
||||||
key: apt-${{ matrix.runner }}-${{ matrix.target }}-v1
|
|
||||||
|
|
||||||
- name: Save sccache cache (fallback)
|
|
||||||
if: always() && !cancelled() && env.SCCACHE_GHA_ENABLED != 'true'
|
|
||||||
continue-on-error: true
|
|
||||||
uses: actions/cache/save@v4
|
|
||||||
with:
|
|
||||||
path: ${{ github.workspace }}/.sccache/
|
|
||||||
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-release-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}
|
|
||||||
|
|
||||||
- name: sccache stats
|
|
||||||
if: always()
|
|
||||||
continue-on-error: true
|
|
||||||
run: sccache --show-stats || true
|
|
||||||
|
|
||||||
- name: sccache summary
|
|
||||||
if: always()
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
{
|
|
||||||
echo "### sccache stats — ${{ matrix.target }} (release)";
|
|
||||||
echo;
|
|
||||||
echo '```';
|
|
||||||
sccache --show-stats || true;
|
|
||||||
echo '```';
|
|
||||||
} >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
|
|
||||||
- name: Remove signing keychain
|
- name: Remove signing keychain
|
||||||
if: ${{ always() && matrix.runner == 'macos-15-xlarge' }}
|
if: ${{ always() && matrix.runner == 'macos-15-xlarge' }}
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
Reference in New Issue
Block a user