From a18ce046bf7b20e7a93eb468cdc4296a41cd3874 Mon Sep 17 00:00:00 2001 From: mackrab Date: Thu, 22 Jun 2023 20:43:10 +0200 Subject: [PATCH] support for github actions --- .github/workflows/release.yaml | 60 +++++++++++++++++++++++++++++++ .github/workflows/test.yaml | 66 ++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 .github/workflows/release.yaml create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..07ece54 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,60 @@ +name: "Release" +permissions: + contents: "write" +on: + push: + tags: + - '*' +jobs: + get-tag: + name: "Get Tag From Package Version" + runs-on: "ubuntu-latest" + outputs: + pkg-version: ${{ steps.pkg-version.outputs.PKG_VERSION }} + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: "Get tag" + id: "pkg-version" + shell: "bash" + run: | + echo PKG_VERSION=$(awk -F ' = ' '$1 ~ /version/ { gsub(/["]/, "", $2); printf("%s",$2) }' Cargo.toml) >> $GITHUB_OUTPUT + create-release: + name: "Create release" + needs: "get-tag" + runs-on: "ubuntu-latest" + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - name: "Create release" + uses: "taiki-e/create-gh-release-action@v1" + with: + # (optional) Path to changelog. + # changelog: CHANGELOG.md + branch: "master" + ref: refs/tags/v${{ needs.get-tag.outputs.pkg-version }} + token: ${{ secrets.GITHUB_TOKEN }} + upload-assets: + name: "Upload assets to Github releases" + needs: + - "get-tag" + - "create-release" + strategy: + matrix: + include: + - target: "x86_64-unknown-linux-gnu" + os: "ubuntu-latest" + runs-on: ${{ matrix.os }} + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - name: "Upload Binaries" + uses: "taiki-e/upload-rust-binary-action@v1" + with: + bin: "frogbot" + target: ${{ matrix.target }} + archive: $bin-${{ matrix.target }} + ref: refs/tags/v${{ needs.get-tag.outputs.pkg-version }} + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..1604b47 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,66 @@ +name: Test +on: [pull_request, push] +jobs: + check: + name: "Cargo check" + runs-on: "ubuntu-latest" + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - uses: "actions-rs/toolchain@v1" + with: + profile: "minimal" + toolchain: "stable" + override: true + - uses: "actions-rs/cargo@v1" + with: + command: "check" + + test: + name: "Cargo test" + runs-on: "ubuntu-latest" + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - uses: "actions-rs/toolchain@v1" + with: + profile: "minimal" + toolchain: "stable" + override: true + - uses: "actions-rs/cargo@v1" + with: + command: "test" + + fmt: + name: "Cargo format" + runs-on: "ubuntu-latest" + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - uses: "actions-rs/toolchain@v1" + with: + profile: "minimal" + toolchain: "stable" + override: true + - run: "rustup component add rustfmt" + - uses: "actions-rs/cargo@v1" + with: + command: "fmt" + args: "--all -- --check" + + clippy: + name: "Cargo clippy" + runs-on: "ubuntu-latest" + steps: + - name: "Check out the repo" + uses: actions/checkout@v3 + - uses: "actions-rs/toolchain@v1" + with: + profile: "minimal" + toolchain: "stable" + override: true + - run: "rustup component add clippy" + - uses: "actions-rs/cargo@v1" + with: + command: "clippy" + args: "-- -D warnings" \ No newline at end of file