CI: Add cpp caching and rust cache fixes in CI build workflows #9175
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- "!v*" | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} | |
env: | |
TARGET: x86_64-pc-linux-gnu | |
MAKE_DEBUG: 0 | |
jobs: | |
e2e-tests: | |
runs-on: ubuntu-latest | |
container: defi/ain-builder:latest | |
env: | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
TESTS_FAILFAST: 0 | |
TESTS_COMBINED_LOGS: 500 | |
CARGO_INCREMENTAL: 0 | |
steps: | |
- name: Checkout base branch and/or merge | |
if: github.event_name != 'pull_request' | |
uses: actions/checkout@v4 | |
- name: Checkout pull request head commit | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Install dependencies | |
run: ./make.sh ci-setup-deps | |
- name: Setup user dependencies | |
run: ./make.sh ci-setup-user-deps | |
- name: Restore cpp build cache | |
id: cpp-cache-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
./build/depends | |
./build/src | |
~/.ccache | |
key: cpp-${{ env.TARGET }}-${{ env.BUILD_TYPE }} | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
id: rust-cache-restore | |
with: | |
workspaces: lib -> ../build/lib/target | |
save-if: ${{ github.ref == 'refs/heads/master' }} | |
shared-key: ${{ env.TARGET }} | |
- name: Build binaries | |
run: ./make.sh build | |
# Temp. workaround to save space to prevent GH runners from running out | |
- name: Cleanup cargo deps | |
run: rm -rf build/lib/target/debug/deps | |
- name: E2E tests | |
run: ./make.sh test | |
rust-tests: | |
runs-on: ubuntu-latest | |
container: defi/ain-builder:latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Setup dependencies | |
run: ./make.sh ci-setup-deps | |
- name: Setup dependencies for user | |
run: ./make.sh ci-setup-user-deps | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2 | |
id: rust-cache-restore | |
with: | |
workspaces: lib -> ../build/lib/target | |
save-if: ${{ github.ref == 'refs/heads/master' }} | |
shared-key: ${{ env.TARGET }} | |
- name: Build deps and configure | |
run: ./make.sh build-deps && ./make.sh build-conf | |
- name: Rust tests | |
run: ./make.sh lib test |