52 lines
1.4 KiB
YAML
52 lines
1.4 KiB
YAML
name: Shuttle.rs
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
tags:
|
|
- "v*.*.*"
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Build / Deploy
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
- uses: dorny/paths-filter@v3
|
|
id: changes
|
|
with:
|
|
filters: |
|
|
manifest:
|
|
- 'Cargo.**'
|
|
- name: Install cargo-binstall
|
|
uses: taiki-e/install-action@cargo-binstall
|
|
- name: Install cargo-shuttle
|
|
run: cargo binstall -y cargo-shuttle
|
|
- name: Prepare for deployment
|
|
shell: bash
|
|
run: sed -i 's|default = \["rustls"\]|default = \["rustls", "shuttle"\]|g' Cargo.toml
|
|
- name: Build
|
|
run: cargo build --locked --verbose
|
|
- name: Deploy
|
|
if: |
|
|
${{ startsWith(github.event.ref, 'refs/tags/v') ||
|
|
github.event_name == 'workflow_dispatch' ||
|
|
steps.changes.outputs.manifest == 'true'
|
|
}}
|
|
run: |
|
|
cargo shuttle login --api-key ${{ secrets.SHUTTLE_TOKEN }}
|
|
cargo shuttle project restart
|
|
cargo shuttle deploy --allow-dirty --no-test
|