diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b5929f7912be34fd1d105c6b3f4c7d955c8a3be4..536993556781027c78e015f421bd1296b9afa6cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,8 @@ on: push: branches: - master + tags: + - "v*" pull_request: branches: - "**" @@ -14,42 +16,63 @@ env: jobs: tests: - name: Tests + name: Run tests runs-on: self-hosted steps: + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: x86_64-apple-darwin + profile: minimal + - name: Checkout repo uses: actions/checkout@v2 + with: + clean: false - # Work around https://github.com/actions/cache/issues/403. - - name: Use GNU tar - run: | - echo PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH" >> $GITHUB_ENV + - name: Run tests + run: cargo test --no-fail-fast - - name: Cache artifacts - id: cache - uses: actions/cache@v2 + bundle: + name: Bundle app + runs-on: self-hosted + steps: + - name: Install Rust x86_64-apple-darwin target + uses: actions-rs/toolchain@v1 with: - path: | - ~/.cargo/registry - ~/.cargo/git - ~/.rustup - target - key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} + toolchain: stable + target: x86_64-apple-darwin + profile: minimal - - name: Install Rust - if: steps.cache.outputs.cache-hit != 'true' + - name: Install Rust aarch64-apple-darwin target uses: actions-rs/toolchain@v1 with: toolchain: stable - target: x86_64-apple-darwin + target: aarch64-apple-darwin profile: minimal - - name: Run tests - run: cargo test --no-fail-fast + - name: Checkout repo + uses: actions/checkout@v2 + with: + clean: false - - name: Create and upload app bundle + - name: Create app bundle run: script/bundle - - uses: actions/upload-artifact@v2 + + - name: Upload app bundle to workflow run + uses: actions/upload-artifact@v2 with: name: Zed.dmg path: target/release/Zed.dmg + + - uses: svenstaro/upload-release-action@v2 + name: Upload app bundle to release + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: target/release/Zed.dmg + asset_name: Zed.dmg + tag: ${{ github.ref }} + overwrite: true + body: "" diff --git a/script/bundle b/script/bundle index 197bc7821c4ae26a13a9a50faa667d33a914ef99..8c8475e01b597f57ffd58d111ce1195fd72018d4 100755 --- a/script/bundle +++ b/script/bundle @@ -2,6 +2,9 @@ set -e +# Install cargo-bundle 0.5.0 if it's not already installed +cargo install cargo-bundle --version 0.5.0 + # Build the app bundle for x86_64 pushd zed > /dev/null cargo bundle --release --target x86_64-apple-darwin