Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Remove era aliases for Persian #27091

Remove era aliases for Persian

Remove era aliases for Persian #27091

Workflow file for this run

# This file is part of ICU4X. For terms of use, please see the file
# called LICENSE at the top level of the ICU4X source tree
# (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
name: Build and Test
# Each of these jobs job maps to a `ci-job-foo` entry in Makefile.toml.
# If adding further CI jobs, please add them as makefile targets as well,
# and list them under `ci-all`.
on:
push:
branches:
- 'main'
- 'release/**'
pull_request:
workflow_dispatch:
inputs:
channel:
description: "Channel"
default: 'nightly'
type: choice
options:
- pinned-stable
- stable
- beta
- nightly
schedule:
# Run nightly cronjob CI every day at 14 UTC / 6AM PST / 3PM CET
- cron: '0 14 * * *'
# Run beta slightly later
- cron: '1 14 * * *'
permissions:
contents: read
concurrency:
# Allow one run at a time for PRs, but multiple for other invocations
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
# ci-job-check & ci-job-features
# Running at MSRV
msrv:
runs-on: ubuntu-latest
# Defined as a matrix so that features can start immediately, but
# be killed if check fails.
strategy:
matrix:
behavior: [check, features-1, features-2, features-3]
fail-fast: true
# Set CARGO_HTTP_MULTIPLEXING=false to work around crates.io curl bug:
# <https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/timeout.20investigation>
env:
CARGO_HTTP_MULTIPLEXING: false
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Job-specific dependencies
- name: Install cargo-all-features
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-all-features@1.11.0
- name: Set MSRV toolchain
run: rustup override set 1.83
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Check
run: cargo make ci-job-${{ matrix.behavior }}
# ci-job-test
test:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Run `cargo make ci-job-test`
run: cargo make ci-job-test
# ci-job-test-docs
test-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Run `cargo make ci-job-test-docs`
run: cargo make ci-job-test-docs
# ci-job-test-gigo
test-gigo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Run `cargo make ci-job-test-gigo`
run: cargo make ci-job-test-gigo
# ci-job-test-cargo
test-cargo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- name: Install harfbuzz
run: sudo apt install libharfbuzz-dev
# Actual job
- name: Run `cargo make ci-job-test-cargo`
run: cargo make ci-job-test-cargo
# ci-job-testdata
testdata:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- name: Install rustfmt
run: rustup component add rustfmt
# Actual job
- name: Run `cargo make ci-job-testdata`
run: cargo make ci-job-testdata
# ci-job-full-datagen
full-datagen:
# Generated Rust is not stable across Rust versions
if: ${{ github.event_name != 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- name: Install rustfmt
run: rustup component add rustfmt
# Actual job
- name: Run `cargo make ci-job-full-datagen`
run: cargo make ci-job-full-datagen
# ci-job-test-c
test-c:
runs-on: ubuntu-24.04 # Includes LLVM 16,17,18
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
# TODO: Remove on 2025-05-05, when clang-19 is in ubuntu-latest (https://github.com/actions/runner-images/issues/11895)
- name: Install LLD and Clang
run: sudo apt-get install lld-19 clang-19
# Actual job
- name: Run `cargo make ci-job-test-c`
run: cargo make ci-job-test-c
env:
CXX: "g++-13"
- name: Test C++ with clang
run: cargo make test-cpp
env:
CXX: "clang++"
# ci-job-test-js
test-js:
runs-on: ubuntu-24.04 # Includes LLVM 16,17,18
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
# TODO: Remove on 2025-05-05, when clang-19 is in ubuntu-latest (https://github.com/actions/runner-images/issues/11895)
- name: Install LLD
run: sudo apt-get install lld-19
# Actual job
- name: Run `cargo make ci-job-test-js`
run: cargo make ci-job-test-js
# ci-job-test-dart
test-dart:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 # v1.6.5
with:
# Keep in sync with artifacts-build.yml
sdk: ${{ github.event_name == 'schedule' && github.event.schedule == '0 14 * * *' && 'dev' || '3.10.0-186.0.dev' }}
- name: Install yq if Windows
if: ${{ matrix.os == 'windows-latest' }}
run: choco install yq
# Actual job
- name: Run `cargo make ci-job-test-dart`
run: cargo make ci-job-test-dart
- name: Run `cargo make ci-job-test-dart` in local mode
run: |
cp ffi/dart/.dart_tool/lib/* dylib
git clean -xf ffi examples
yq -i ".hooks.user_defines.icu4x.buildMode = \"local\"" ffi/dart/pubspec.yaml
yq -i ".hooks.user_defines.icu4x.localPath = \"file://$(realpath dylib)\"" ffi/dart/pubspec.yaml
yq -i ".hooks.user_defines.icu4x.buildMode = \"local\"" examples/dart/pubspec.yaml
yq -i ".hooks.user_defines.icu4x.localPath = \"file://$(realpath dylib)\"" examples/dart/pubspec.yaml
cargo make ci-job-test-dart
rm dylib
- name: Run `cargo make ci-job-test-dart` in fetch mode
# reenable after next release
if: false
run: |
git clean -xf ffi examples
yq -i ".hooks.user_defines.icu4x.buildMode = \"fetch\"" ffi/dart/pubspec.yaml
yq -i ".hooks.user_defines.icu4x.buildMode = \"fetch\"" examples/dart/pubspec.yaml
cargo make ci-job-test-dart
# ci-job-nostd
nostd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Run `cargo make ci-job-nostd`
run: cargo make ci-job-nostd
# ci-job-diplomat
diplomat:
runs-on: [ ubuntu-latest ]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Run `cargo make ci-job-diplomat`
run: cargo make ci-job-diplomat
# ci-job-fmt
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- name: Install rustfmt
run: rustup component add rustfmt
# Actual job
- name: Check Format
run: cargo make ci-job-fmt
# ci-job-tidy
tidy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Tidy
run: cargo make ci-job-tidy
# ci-job-clippy
clippy:
# We don't expect to be clippy-clean on nightly cronjob.
if: ${{ github.event_name != 'schedule' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Job-specific dependencies
- name: Install clippy
run: rustup component add clippy
# Actual job
- name: Run `ci-job-clippy`
run: cargo make ci-job-clippy
# ci-job-doc
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# Cargo-make boilerplate
- name: Install cargo-make
uses: taiki-e/install-action@64e4e2f995104968c78bd697b253d55bf557af66 # v2.41.11
with:
tool: cargo-make@0.37.13
# Toolchain boilerplate
- name: Potentially override rust version with nightly
run: cargo make set-ci-toolchain
- name: Show the selected Rust toolchain
run: rustup show
# Actual job
- name: Cargo doc
run: cargo make ci-job-doc
semver:
runs-on: ubuntu-latest
steps:
# Checkout HEAD revision
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Fetch base_ref if needed
if: ${{ github.event_name == 'pull_request' }}
run: git fetch origin ${{ github.base_ref }}
# Actual job
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@5b298c9520f7096a4683c0bd981a7ac5a7e249ae
# On pull requests, run against the base_ref so only violations added in that PR
# will trigger
if: ${{ github.event_name == 'pull_request' }}
with:
baseline-rev: origin/${{ github.base_ref }}
- name: Show semver violations since last release
uses: obi1kenobi/cargo-semver-checks-action@5b298c9520f7096a4683c0bd981a7ac5a7e249ae
# On main, run against the last release, but warn only
if: ${{ github.event_name != 'pull_request' }}
continue-on-error: true
# Notify on slack
notify-slack:
needs: [msrv, test, testdata, test-docs, full-datagen, test-c, test-js, test-dart, nostd, diplomat, fmt, tidy, clippy, doc]
if: ${{ always() && contains(needs.*.result, 'failure') && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref_name == 'main')) }}
runs-on: ubuntu-latest
steps:
- name: Notify slack of failure
uses: ravsamhq/notify-slack-action@4ed28566c2bdcdaee6dca2b46b9666d01b4ed8a4 # v1
with:
notify_when: failure
status: failure # We do the filtering earlier
notification_title: ''
message_format: ${{ format('{{emoji}} {0} CI failed!' , (github.event_name == 'push' && 'Main' || (github.event.schedule == '1 14 * * *' && 'Beta' || 'Nightly'))) }}
footer: '<{run_url}|View failure> | <https://github.com/unicode-org/icu4x/actions?query=event%3A${{ github.event_name }}|CI history for `${{ github.event_name }}`>'
env:
# Notify main slack of failure for beta runs and and main CI, nightly slack otherwise
SLACK_WEBHOOK_URL: ${{ ((github.event_name == 'schedule' && github.event.schedule == '1 14 * * *') || github.event_name == 'push') && secrets.SLACK_WEBHOOK_URL || secrets.SLACK_NIGHTLY_WEBHOOK_URL }}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.