|
@@ -10,6 +10,100 @@ on:
|
|
|
- dev
|
|
|
|
|
|
jobs:
|
|
|
+ run-integration-tests:
|
|
|
+ runs-on: ${{ matrix.platform }}
|
|
|
+
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ # platform: [ubuntu-latest, macos-latest, windows-latest]
|
|
|
+ platform: [ubuntu-latest, macos-latest]
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+ - name: install stable
|
|
|
+ uses: actions-rs/toolchain@v1
|
|
|
+ with:
|
|
|
+ toolchain: stable
|
|
|
+ - name: install Linux dependencies
|
|
|
+ if: matrix.platform == 'ubuntu-latest'
|
|
|
+ run: |
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf
|
|
|
+
|
|
|
+ - name: Get current date
|
|
|
+ run: echo "CURRENT_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
|
|
|
+ if: matrix.platform == 'macos-latest' || matrix.platform == 'ubuntu-latest'
|
|
|
+
|
|
|
+ - name: Get current date
|
|
|
+ if: matrix.platform == 'windows-latest'
|
|
|
+ run: echo "CURRENT_DATE=$(Get-Date -Format "yyyy-MM-dd")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
|
+
|
|
|
+ - name: Cache cargo state
|
|
|
+ uses: actions/cache@v2
|
|
|
+ env:
|
|
|
+ cache-name: cargo_state
|
|
|
+ with:
|
|
|
+ path: |
|
|
|
+ ~/.cargo/registry
|
|
|
+ ~/.cargo/git
|
|
|
+ ~/.cargo/bin
|
|
|
+ key: ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }}
|
|
|
+ restore-keys: |
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('**/Cargo.toml') }}-
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-
|
|
|
+ ${{ matrix.platform }}-stable-
|
|
|
+ ${{ matrix.platform }}-
|
|
|
+
|
|
|
+ - name: Cache core cargo target
|
|
|
+ uses: actions/cache@v2
|
|
|
+ env:
|
|
|
+ cache-name: cargo_core
|
|
|
+ with:
|
|
|
+ path: target
|
|
|
+ # Add date to the cache to keep it up to date
|
|
|
+ key: ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('core/**/Cargo.toml') }}-${{ env.CURRENT_DATE }}
|
|
|
+ # Restore from outdated cache for speed
|
|
|
+ restore-keys: |
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('core/**/Cargo.toml') }}
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-
|
|
|
+ ${{ matrix.platform }}-stable-
|
|
|
+ ${{ matrix.platform }}-
|
|
|
+
|
|
|
+ - name: Cache CLI cargo target
|
|
|
+ uses: actions/cache@v2
|
|
|
+ env:
|
|
|
+ cache-name: cargo_cli
|
|
|
+ with:
|
|
|
+ path: tooling/cli/target
|
|
|
+ # Add date to the cache to keep it up to date
|
|
|
+ key: ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('tooling/cli/Cargo.lock') }}-${{ env.CURRENT_DATE }}
|
|
|
+ # Restore from outdated cache for speed
|
|
|
+ restore-keys: |
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-${{ hashFiles('tooling/cli/Cargo.lock') }}
|
|
|
+ ${{ matrix.platform }}-stable-${{ env.cache-name }}-
|
|
|
+ ${{ matrix.platform }}-stable-
|
|
|
+ ${{ matrix.platform }}-
|
|
|
+
|
|
|
+ - name: build CLI
|
|
|
+ uses: actions-rs/cargo@v1
|
|
|
+ with:
|
|
|
+ command: build
|
|
|
+ args: --manifest-path ./tooling/cli/Cargo.toml
|
|
|
+
|
|
|
+ - name: run integration tests
|
|
|
+ run: cargo test --test '*' -- --ignored
|
|
|
+
|
|
|
+ - name: run CLI tests
|
|
|
+ timeout-minutes: 30
|
|
|
+ run: |
|
|
|
+ cd ./tooling/cli/node
|
|
|
+ yarn
|
|
|
+ yarn build
|
|
|
+ yarn test
|
|
|
+
|
|
|
version-or-publish:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 65
|
|
@@ -17,6 +111,8 @@ jobs:
|
|
|
change: ${{ steps.covector.outputs.change }}
|
|
|
commandRan: ${{ steps.covector.outputs.commandRan }}
|
|
|
successfulPublish: ${{ steps.covector.outputs.successfulPublish }}
|
|
|
+ needs:
|
|
|
+ - run-integration-tests
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|