Skip to content
This repository has been archived by the owner on Jun 3, 2024. It is now read-only.

ci: add cache to release build #27

ci: add cache to release build

ci: add cache to release build #27

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
with:
cache-targets: "true"
cache-on-failure: "true"
cache-all-crates: "true"
shared-key: "debug-build"
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Runs Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.13.0
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- uses: actions-rs/cargo@v1
env:
TEST_CONTAINER: 'false'
MIMIR__ELASTICSEARCH__URL: 'http://es1:9200'
with:
command: llvm-cov
args: --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: lcov.info
fail_ci_if_error: false
lints:
name: Lints & Format
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
cache-targets: "true"
cache-on-failure: "true"
cache-all-crates: "true"
shared-key: "debug-build"
- name: Run cargo fmt
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: clippy
args: -- -D warnings
build:
name: Build
needs: [lints, test]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
cache-targets: "true"
cache-on-failure: "true"
cache-all-crates: "true"
shared-key: "release-build"
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- name: Get lib postal
run: |
sudo apt-get update && sudo apt-get install -y \
autoconf automake build-essential curl git libsnappy-dev libtool pkg-config llvm-dev libclang-dev clang
git clone https://github.com/openvenues/libpostal
- name: Install libpostal
run: |
cd libpostal
./bootstrap.sh
sudo mkdir -p /opt/libpostal_data
./configure --datadir=/opt/libpostal_data
make -j4
sudo make install
sudo ldconfig
pkg-config --cflags libpostal
- name: Run cargo build
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: build
args: --all-features --release