name: Build && Deploy on: push: branches: - main jobs: build: name: cargo build runs-on: ubuntu-latest steps: - name: Restore cached toolchain id: cache-toolchain uses: actions/cache/restore@v4 with: path: | ~/.rustup ~/.cargo key: linux-rust-toolchainv2 - name: Install minimal stable with clippy and rustfmt uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable - name: Save cached toolchain id: cache-toolchain-save uses: actions/cache/save@v4 with: path: | ~/.rustup ~/.cargo key: ${{ steps.cache-toolchain.outputs.cache-primary-key }} - uses: actions/checkout@v4 - name: Restore cached cargo dependencies id: cache-project-dependencies uses: actions/cache/restore@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target key: linux-project-dependencies - run: cargo build --release --target x86_64-unknown-linux-gnu - name: Save cached cargo dependencies id: cache-project-dependencies-restore uses: actions/cache/save@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target key: ${{ steps.cache-project-dependencies.outputs.cache-primary-key }} - name: Upload Release Binary id: bot-artifact uses: christopherhx/gitea-upload-artifact@v4 with: name: botrunner path: target/x86_64-unknown-linux-gnu/release/gongbotrs - name: Deploy with WebHook # temporary solutino to hardcode artifact url, because upload-artifact's artifact-url gives wrong one run: curl http://${{ secrets.SERVER_ADDR }}/hooks/gongbot-deploy?binaryzip='https://git.akulij.ru/akulij/gongbotrs/actions/runs/${{ gitea.run_number }}/artifacts/botrunner'