Rust library to generate static websites
at fix/misc-errors 138 lines 2.8 kB view raw
1name: CI 2 3on: 4 workflow_dispatch: 5 push: 6 branches: 7 - main 8 9 pull_request: 10 11# Automatically cancel older in-progress jobs on the same branch 12concurrency: 13 group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} 14 cancel-in-progress: true 15defaults: 16 run: 17 shell: bash 18 19env: 20 RUSTFLAGS: "-Dwarnings" 21 22jobs: 23 lint: 24 runs-on: ubuntu-latest 25 steps: 26 - name: Checkout 27 uses: actions/checkout@v4 28 29 - name: Setup Rust 30 uses: moonrepo/setup-rust@v1 31 with: 32 components: clippy 33 34 - name: Setup pnpm 35 uses: pnpm/action-setup@v4 36 37 - name: Setup Node.js 38 uses: actions/setup-node@v4 39 with: 40 node-version: latest 41 cache: 'pnpm' 42 43 - name: Install dependencies 44 run: pnpm install 45 46 - name: Build JS dependencies 47 run: cargo xtask build-js 48 49 - name: Run Clippy 50 run: cargo clippy --all-targets --all-features 51 52 build: 53 name: Build 54 runs-on: ubuntu-latest 55 steps: 56 - name: Checkout 57 uses: actions/checkout@v4 58 59 - name: Setup Rust 60 uses: moonrepo/setup-rust@v1 61 62 - name: Setup pnpm 63 uses: pnpm/action-setup@v4 64 65 - name: Setup Node.js 66 uses: actions/setup-node@v4 67 with: 68 node-version: latest 69 cache: 'pnpm' 70 71 - name: Install dependencies 72 run: pnpm install 73 74 - name: Build JS dependencies 75 run: cargo xtask build-js 76 77 - name: Build 78 run: cargo build 79 80 e2e: 81 name: Test (E2E) 82 runs-on: ubuntu-latest 83 steps: 84 - name: Checkout 85 uses: actions/checkout@v4 86 87 - name: Setup Rust 88 uses: moonrepo/setup-rust@v1 89 90 - name: Setup pnpm 91 uses: pnpm/action-setup@v4 92 93 - name: Setup Node.js 94 uses: actions/setup-node@v4 95 with: 96 node-version: latest 97 cache: 'pnpm' 98 99 - name: Install dependencies 100 run: pnpm install 101 102 - name: Build JS dependencies 103 run: cargo xtask build-js 104 105 - name: Build 106 run: cargo build 107 108 - name: Test 109 working-directory: ./e2e 110 run: pnpm playwright install chromium && pnpm test 111 112 test: 113 name: Test 114 runs-on: ubuntu-latest 115 steps: 116 - name: Checkout 117 uses: actions/checkout@v4 118 119 - name: Setup Rust 120 uses: moonrepo/setup-rust@v1 121 122 - name: Setup pnpm 123 uses: pnpm/action-setup@v4 124 125 - name: Setup Node.js 126 uses: actions/setup-node@v4 127 with: 128 node-version: latest 129 cache: 'pnpm' 130 131 - name: Install dependencies 132 run: pnpm install 133 134 - name: Build JS dependencies 135 run: cargo xtask build-js 136 137 - name: Test 138 run: cargo test