ci.yml

 1name: CI
 2
 3on:
 4  push:
 5    branches:
 6      - master
 7    tags:
 8      - "v*"
 9  pull_request:
10    branches:
11      - "**"
12
13env:
14  CARGO_TERM_COLOR: always
15  CARGO_INCREMENTAL: 0
16
17jobs:
18  tests:
19    name: Run tests
20    runs-on: self-hosted
21    steps:
22      - name: Install Rust
23        uses: actions-rs/toolchain@v1
24        with:
25          toolchain: stable
26          target: x86_64-apple-darwin
27          profile: minimal
28
29      - name: Checkout repo
30        uses: actions/checkout@v2
31        with:
32          clean: false
33
34      - name: Run tests
35        run: cargo test --no-fail-fast
36
37  bundle:
38    name: Bundle app
39    runs-on: self-hosted
40    steps:
41      - name: Install Rust x86_64-apple-darwin target
42        uses: actions-rs/toolchain@v1
43        with:
44          toolchain: stable
45          target: x86_64-apple-darwin
46          profile: minimal
47
48      - name: Install Rust aarch64-apple-darwin target
49        uses: actions-rs/toolchain@v1
50        with:
51          toolchain: stable
52          target: aarch64-apple-darwin
53          profile: minimal
54
55      - name: Checkout repo
56        uses: actions/checkout@v2
57        with:
58          clean: false
59
60      - name: Create app bundle
61        run: script/bundle
62
63      - name: Upload app bundle to workflow run
64        uses: actions/upload-artifact@v2
65        with:
66          name: Zed.dmg
67          path: target/release/Zed.dmg
68
69      - uses: softprops/action-gh-release@v1
70        name: Upload app bundle to release
71        if: ${{ startsWith(github.ref, 'refs/tags/v') }}
72        with:
73          draft: true
74          files: target/release/Zed.dmg
75          overwrite: true
76          body: ""
77        env:
78          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}