diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index 13d791ae4..1e5417abe 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -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