name: Build and Deploy to shuttle.rs # on: # push: # branches: # - master # pull_request: # branches: # - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Cache dependencies uses: actions/cache@v4 with: path: | node_modules ~/.cache/trunk ~/.cargo target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo-df - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - name: Add Rust target wasm32-unknown-unknown run: rustup target add wasm32-unknown-unknown - name: Install Trunk run: cargo install trunk - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: Install Tailwind CSS run: npm install -g tailwindcss - name: Build Frontend working-directory: ./frontend run: | trunk build --release - name: Build and Test backend run: | cargo build --verbose --release cargo test --verbose deploy: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v4 - uses: shuttle-hq/deploy-action@main with: deploy-key: ${{ secrets.SHUTTLE_API_KEY }}