name: Build and Release on: [ push ] jobs: build: runs-on: ubuntu-latest steps: - name: checkout Repo uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Setup Python Tools run: pip install yaclog~=1.1 - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable components: rustfmt - name: Run Checks run: | cargo check cargo fmt --check - name: Run Unit Tests run: cargo test - name: Generate changelog info continue-on-error: true run: | # todo: make this part of yaclog! echo "VERSION_TITLE=$(yaclog show -n)" >> $GITHUB_ENV echo "$(yaclog show -mb)" >> /tmp/RELEASE.md yaclog show - name: Publish to Crates.io if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') run: cargo publish --token ${{ secrets.CARGO_TOKEN }} - name: Publish to Github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') uses: softprops/action-gh-release@v1 with: name: Version ${{ env.VERSION_TITLE }} body_path: /tmp/RELEASE.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}