Skip to content

[ci] Release

[ci] Release #13349

Workflow file for this run

name: CI (build, lint, test)
# All pull requests, and
# Workflow dispatch allows you to run this workflow manually from the Actions tab
on:
pull_request:
workflow_dispatch:
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
CI: true
jobs:
build:
name: Build & unit test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
show-progress: false
- name: Runner setup
uses: ./.github/actions/runner-setup
- name: Install rust dependencies
run: |
sudo apt-get update
sudo apt-get install libgtk-3-dev libsoup2.4-dev javascriptcoregtk-4.1
- name: Lint monorepo root
run: pnpm run lint
- name: Build, lint, test all packages
run: pnpm turbo lint build test
integration-tests:
name: INT - ${{ matrix.package }}
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package:
[
'@kadena/client',
'@kadena/client-utils',
'@kadena/create-kadena-app',
]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
show-progress: false
- name: Runner Setup
uses: ./.github/actions/runner-setup
- name: Setup Kadena sandbox
uses: ./.github/actions/sandbox
- name: run integration tests
run: pnpm run test:integration --filter ${{ matrix.package }}
end-to-end-tests:
name: E2E - ${{ matrix.app }}
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
app: ['tools', 'docs', 'graph']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
show-progress: false
- name: Runner Setup
uses: ./.github/actions/runner-setup
- name: Setup Kadena sandbox
uses: ./.github/actions/sandbox
- name: Build App with NODE_ENV=test
uses: ./.github/actions/build-app-e2e
with:
app: ${{ matrix.app }}
- name: Run end-to-end tests
uses: ./.github/actions/end-to-end-tests
with:
app: ${{ matrix.app }}
- name: Archive sandbox logs
uses: ./.github/actions/archive-logs
if: always()
with:
test-object: ${{ matrix.app }}
- name: Teardown kadena sandbox
if: always()
run: docker compose down
working-directory: .github/actions/sandbox
- name: Archive volumes
uses: ./.github/actions/archive-volumes
if: always()
with:
test-object: ${{ matrix.app }}
- name: Upload Blob Report
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: blob-report-${{ matrix.app }}
path: packages/e2e/e2e-${{ matrix.app }}/blob-report/
retention-days: 1
merge-publish-reports:
if: ${{ !cancelled() }}
needs: [end-to-end-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
show-progress: false
- name: Runner Setup
uses: ./.github/actions/runner-setup
- name: Merge & Publish Report
uses: ./.github/actions/merge-publish-reports
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ci-gate:
if: always()
needs:
- build
- integration-tests
- end-to-end-tests
- merge-publish-reports
runs-on: Ubuntu-latest
steps:
- name: Check required jobs.
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}