Add the ability to reply to a message (#7170) #8
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- "v[0-9]+.[0-9]+.x" | |
tags: | |
- "v*" | |
pull_request: | |
branches: | |
- "**" | |
concurrency: | |
# Allow only one workflow per any non-`main` branch. | |
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
jobs: | |
style: | |
name: Check formatting, Clippy lints, and spelling | |
runs-on: | |
- self-hosted | |
- test | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
clean: false | |
submodules: "recursive" | |
fetch-depth: 0 | |
- name: Set up default .cargo/config.toml | |
run: cp ./.cargo/ci-config.toml ~/.cargo/config.toml | |
- name: Check spelling | |
run: | | |
if ! which typos > /dev/null; then | |
cargo install typos-cli | |
fi | |
typos | |
- name: Run style checks | |
uses: ./.github/actions/check_style | |
tests: | |
name: Run tests | |
runs-on: | |
- self-hosted | |
- test | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
clean: false | |
submodules: "recursive" | |
- name: Run tests | |
uses: ./.github/actions/run_tests | |
- name: Build collab | |
run: cargo build -p collab | |
- name: Build other binaries | |
run: cargo build --workspace --bins --all-features | |
bundle: | |
name: Bundle app | |
runs-on: | |
- self-hosted | |
- bundle | |
if: ${{ startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-build-dmg') }} | |
needs: tests | |
env: | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} | |
APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} | |
APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} | |
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} | |
steps: | |
- name: Install Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
clean: false | |
submodules: "recursive" | |
- name: Limit target directory size | |
run: script/clear-target-dir-if-larger-than 100 | |
- name: Determine version and release channel | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
run: | | |
set -eu | |
version=$(script/get-crate-version zed) | |
channel=$(cat crates/zed/RELEASE_CHANNEL) | |
echo "Publishing version: ${version} on release channel ${channel}" | |
echo "RELEASE_CHANNEL=${channel}" >> $GITHUB_ENV | |
expected_tag_name="" | |
case ${channel} in | |
stable) | |
expected_tag_name="v${version}";; | |
preview) | |
expected_tag_name="v${version}-pre";; | |
nightly) | |
expected_tag_name="v${version}-nightly";; | |
*) | |
echo "can't publish a release on channel ${channel}" | |
exit 1;; | |
esac | |
if [[ $GITHUB_REF_NAME != $expected_tag_name ]]; then | |
echo "invalid release tag ${GITHUB_REF_NAME}. expected ${expected_tag_name}" | |
exit 1 | |
fi | |
- name: Generate license file | |
run: script/generate-licenses | |
- name: Create app bundle | |
run: script/bundle | |
- name: Upload app bundle to workflow run if main branch or specific label | |
uses: actions/upload-artifact@v3 | |
if: ${{ github.ref == 'refs/heads/main' }} || contains(github.event.pull_request.labels.*.name, 'run-build-dmg') }} | |
with: | |
name: Zed_${{ github.event.pull_request.head.sha || github.sha }}.dmg | |
path: target/release/Zed.dmg | |
- uses: softprops/action-gh-release@v1 | |
name: Upload app bundle to release | |
if: ${{ env.RELEASE_CHANNEL == 'preview' || env.RELEASE_CHANNEL == 'stable' }} | |
with: | |
draft: true | |
prerelease: ${{ env.RELEASE_CHANNEL == 'preview' }} | |
files: target/release/Zed.dmg | |
body: "" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |