Improve log event timestamping #8038
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: build | |
on: | |
push: | |
branches: [master, nightly, develop] | |
pull_request: | |
branches: [develop] | |
jobs: | |
pre-commit: | |
name: pre-commit | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
issues: write | |
pull-requests: write | |
checks: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Common setup | |
uses: ./.github/actions/common-setup | |
with: | |
python-version: "3.11" | |
free-disk-space: "true" | |
- name: Run pre-commit | |
continue-on-error: true | |
run: make pre-commit || echo "PRECOMMIT_FAILED=true" >> $GITHUB_ENV | |
- name: Set pre-commit status | |
if: always() | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
try { | |
const conclusion = process.env.PRECOMMIT_FAILED === 'true' ? 'failure' : 'success'; | |
await github.rest.checks.create({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
name: 'pre-commit result', | |
head_sha: context.sha, | |
status: 'completed', | |
conclusion: conclusion, | |
output: { | |
title: conclusion === 'failure' ? 'Pre-commit checks failed' : 'Pre-commit checks passed', | |
summary: conclusion === 'failure' | |
? 'Please run `make pre-commit` (or `pre-commit run --all-files`) to fix formatting issues' | |
: 'All pre-commit checks passed' | |
} | |
}); | |
} catch (error) { | |
if (error.status === 403) { | |
console.log('No permissions to create check run - this is expected for PRs from forks'); | |
} else { | |
throw error; | |
} | |
} | |
- name: Fail job if pre-commit failed | |
if: env.PRECOMMIT_FAILED == 'true' | |
run: | | |
echo "Pre-commit checks failed, exiting" | |
exit 1 | |
build-linux-standard-precision: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- "3.12" | |
defaults: | |
run: | |
shell: bash | |
name: build - standard-precision (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
needs: | |
- pre-commit | |
env: | |
BUILD_MODE: debug | |
HIGH_PRECISION: false | |
RUST_BACKTRACE: 1 | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: pass | |
POSTGRES_DB: nautilus | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Common setup | |
uses: ./.github/actions/common-setup | |
with: | |
python-version: ${{ matrix.python-version }} | |
free-disk-space: "true" | |
- name: Install Nautilus CLI and run init postgres | |
run: | | |
make install-cli | |
nautilus database init --schema ${{ github.workspace }}/schema/sql | |
env: | |
POSTGRES_HOST: localhost | |
POSTGRES_PORT: 5432 | |
POSTGRES_USERNAME: postgres | |
POSTGRES_PASSWORD: pass | |
POSTGRES_DATABASE: nautilus | |
- name: Cached test data | |
uses: ./.github/actions/common-test-data | |
- name: Run Rust tests (with standard-precision) | |
run: make cargo-test-standard-precision | |
- name: Build and install wheel | |
uses: ./.github/actions/common-wheel-build | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run tests | |
run: | | |
pytest --ignore=tests/performance_tests | |
build-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-22.04 | |
python-version: | |
- "3.11" | |
- "3.12" | |
defaults: | |
run: | |
shell: bash | |
name: build - python ${{ matrix.python-version }} (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
needs: | |
- pre-commit | |
env: | |
BUILD_MODE: release | |
RUST_BACKTRACE: 1 | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: pass | |
POSTGRES_DB: nautilus | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Common setup | |
uses: ./.github/actions/common-setup | |
with: | |
python-version: ${{ matrix.python-version }} | |
free-disk-space: "true" | |
- name: Install Nautilus CLI and run init postgres | |
run: | | |
make install-cli | |
nautilus database init --schema ${{ github.workspace }}/schema/sql | |
env: | |
POSTGRES_HOST: localhost | |
POSTGRES_PORT: 5432 | |
POSTGRES_USERNAME: postgres | |
POSTGRES_PASSWORD: pass | |
POSTGRES_DATABASE: nautilus | |
- name: Cached test data | |
uses: ./.github/actions/common-test-data | |
- name: Run Rust tests | |
run: make cargo-test | |
- name: Build and install wheel | |
uses: ./.github/actions/common-wheel-build | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run tests | |
run: | | |
pytest --ignore=tests/performance_tests | |
- name: Upload wheel artifact | |
uses: ./.github/actions/upload-artifact-wheel | |
build-macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
python-version: | |
- "3.11" | |
- "3.12" | |
defaults: | |
run: | |
shell: bash | |
name: build - python ${{ matrix.python-version }} (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
# Pause macOS jobs on develop branch for now (they take ~1-1.5 hrs) | |
if: > | |
!( (github.event_name == 'push' && github.ref_name == 'develop') | |
|| (github.event_name == 'pull_request' && github.base_ref == 'develop') ) | |
needs: | |
- pre-commit | |
env: | |
BUILD_MODE: release | |
RUST_BACKTRACE: 1 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Common setup | |
uses: ./.github/actions/common-setup | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cached test data | |
uses: ./.github/actions/common-test-data | |
- name: Run Rust tests | |
run: make cargo-test | |
- name: Build and install wheel | |
uses: ./.github/actions/common-wheel-build | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run tests | |
run: | | |
pytest --ignore=tests/performance_tests | |
- name: Upload wheel artifact | |
uses: ./.github/actions/upload-artifact-wheel | |
build-windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-latest | |
python-version: | |
- "3.11" | |
- "3.12" | |
defaults: | |
run: | |
shell: bash | |
name: build - python ${{ matrix.python-version }} (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
# Pause windows jobs on develop branch for now (they take ~1 hr) | |
if: > | |
!( (github.event_name == 'push' && github.ref_name == 'develop') | |
|| (github.event_name == 'pull_request' && github.base_ref == 'develop') ) | |
needs: | |
- pre-commit | |
env: | |
BUILD_MODE: release | |
HIGH_PRECISION: false | |
PARALLEL_BUILD: false | |
RUST_BACKTRACE: 1 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Common setup | |
uses: ./.github/actions/common-setup | |
with: | |
python-version: ${{ matrix.python-version }} | |
free-disk-space: "true" | |
- name: Build and install wheel | |
uses: ./.github/actions/common-wheel-build | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cached test data | |
uses: ./.github/actions/common-test-data | |
- name: Run tests | |
run: | | |
pytest --ignore=tests/performance_tests | |
- name: Upload wheel artifact | |
uses: ./.github/actions/upload-artifact-wheel | |
publish-wheels-develop: | |
name: publish-wheels-develop | |
runs-on: ubuntu-latest | |
needs: | |
- build-linux | |
# - build-macos # Reinstate this when/if macos runs on every build | |
# - build-windows # Reinstate this when/if windows runs on every build | |
# if: github.event_name == 'push' && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/nightly' || github.ref == 'refs/heads/master') | |
if: > | |
github.event_name == 'push' && | |
github.ref == 'refs/heads/develop' | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
CLOUDFLARE_R2_URL: ${{ secrets.CLOUDFLARE_R2_URL }} | |
CLOUDFLARE_R2_BUCKET_NAME: "packages" | |
CLOUDFLARE_R2_REGION: "auto" | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Publish wheels | |
uses: ./.github/actions/publish-wheels | |
# Temporary additional publish step while macos wheels are paused on develop branch | |
publish-wheels: | |
name: publish-wheels | |
runs-on: ubuntu-latest | |
needs: | |
- build-linux | |
- build-macos | |
- build-windows | |
if: > | |
github.event_name == 'push' && | |
(github.ref == 'refs/heads/nightly' || github.ref == 'refs/heads/master') | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
CLOUDFLARE_R2_URL: ${{ secrets.CLOUDFLARE_R2_URL }} | |
CLOUDFLARE_R2_BUCKET_NAME: "packages" | |
CLOUDFLARE_R2_REGION: "auto" | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Publish wheels | |
uses: ./.github/actions/publish-wheels |