name: Deploy to GitHub Pages on: push: branches: 'main' jobs: build_site: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Install Node.js uses: actions/setup-node@v6 with: node-version: 24 cache: npm cache-dependency-path: website/package-lock.json - name: Install Rust uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown - name: Install wasm-pack uses: taiki-e/install-action@v2 with: tool: wasm-pack - name: Test gpx-rs run: cargo test - name: Build wasm run: wasm-pack build --target bundler working-directory: wasm - name: Install dependencies for website run: npm install --prefix website - name: Test website run: npm test --prefix website - name: Create env file run: | touch website/.env echo PUBLIC_MAPTILER_KEY=${{ secrets.PUBLIC_MAPTILER_KEY }} >> website/.env cat website/.env - name: Build website env: BASE_PATH: '' run: | npm run build --prefix website - name: Upload Artifacts uses: actions/upload-pages-artifact@v4 with: path: 'website/build/' deploy: needs: build_site runs-on: ubuntu-latest permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy id: deployment uses: actions/deploy-pages@v4