name: Check on: workflow_dispatch: push: branches: [ main, develop, actions ] pull_request: branches: [ main, develop, actions ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Cache build data uses: actions/cache@v2 with: path: | target ~/.cargo/ key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Run Rustfmt uses: actions-rust-lang/rustfmt@v1.0.0 - name: Run Clippy uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Test coreutils run: cargo test --verbose --package bot-coreutils - name: Test database run: cargo test --verbose --package bot-database - name: Test binary run: cargo test --verbose - name: Move binaries run: mv target/debug/tobi-rs target/tobi-rs-linux-x86_64_debug - name: Import GPG key id: import_gpg uses: crazy-max/ghaction-import-gpg@v3 with: gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.PASSPHRASE }} - name: Sign artifact run: gpg --batch --yes --pinentry-mode loopback --passphrase "${{ secrets.PASSPHRASE }}" --detach-sign --sign --armor --default-key steps.import_gpg.outputs.keyid --output target/tobi-rs-linux-x86_64_debug.sig target/tobi-rs-linux-x86_64_debug - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: tobi-rs-linux_debug path: | target/tobi-rs-linux-x86_64_debug target/tobi-rs-linux-x86_64_debug.sig