Skip to content

build: $ cargo update #176

build: $ cargo update

build: $ cargo update #176

Workflow file for this run

name: Build
on: [push]
env:
CARGO_TERM_COLOR: always
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: rustup component add
run: rustup component add rustfmt
- name: cargo fmt --verbose --all -- --check
run: cargo fmt --verbose --all -- --check
- name: rustup component add
run: rustup component add clippy
- name: cargo clippy --verbose --all -- -D warnings
run: cargo clippy --verbose --all -- -D warnings
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --verbose
- name: Run unit tests
run: cargo test --verbose
- name: sudo apt-get install zsh
run: sudo apt-get install zsh
- name: Run integration tests
run: |
export PATH="$PWD/target/debug:$PATH"
./test/integration_test.zsh
release-build:
strategy:
fail-fast: false
matrix:
target:
- x86_64-apple-darwin
- x86_64-unknown-linux-gnu
- x86_64-pc-windows-gnu
- aarch64-apple-darwin
- aarch64-unknown-linux-gnu
include:
- target: x86_64-apple-darwin
os: macOS-latest
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- target: x86_64-pc-windows-gnu
os: ubuntu-latest
- target: aarch64-apple-darwin
os: macOS-latest
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
name: Release build - ${{ matrix.target }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: rust-toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}
default: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target=${{ matrix.target }}
use-cross: true
- name: Archive an executable
id: asset
run: |
EXE=
ARCHIVE=.tar.gz
if ${{ contains(matrix.target, 'pc-windows') }}; then
EXE=.exe
ARCHIVE=.zip
fi
NAME="${GITHUB_REPOSITORY#*/}"
EXECUTABLE="${NAME}${EXE}"
ASSET="${NAME}${ARCHIVE}"
mv "./target/${{ matrix.target }}/release/${EXECUTABLE}" "./${EXECUTABLE}"
if [[ "${ARCHIVE}" = ".tar.gz" ]]; then
tar czfv "./${ASSET}" "${EXECUTABLE}"
else
zip "./${ASSET}" "${EXECUTABLE}"
fi
echo "asset=${ASSET}" >>$GITHUB_OUTPUT
shell: bash
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: artifact-${{ matrix.target }}
path: ${{ steps.asset.outputs.asset }}
release:
name: Release
runs-on: ubuntu-latest
needs: [lint, build, release-build]
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout tap
uses: actions/checkout@v3
with:
repository: "Ryooooooga/homebrew-tap"
token: ${{ secrets.GH_ACCESS_TOKEN }}
- name: Download artifacts
uses: actions/download-artifact@v3
- name: Rename assets
id: asset
run: |
NAME=${GITHUB_REPOSITORY#*/}
TAG=${GITHUB_REF#refs/tags/}
mv "artifact-x86_64-apple-darwin/${NAME}.tar.gz" "./${NAME}-${TAG}-x86_64-apple-darwin.tar.gz"
mv "artifact-x86_64-unknown-linux-gnu/${NAME}.tar.gz" "./${NAME}-${TAG}-x86_64-unknown-linux-gnu.tar.gz"
mv "artifact-x86_64-pc-windows-gnu/${NAME}.zip" "./${NAME}-${TAG}-x86_64-pc-windows-gnu.zip"
mv "artifact-aarch64-apple-darwin/${NAME}.tar.gz" "./${NAME}-${TAG}-aarch64-apple-darwin.tar.gz"
mv "artifact-aarch64-unknown-linux-gnu/${NAME}.tar.gz" "./${NAME}-${TAG}-aarch64-unknown-linux-gnu.tar.gz"
echo "asset-x86_64-apple-darwin=${NAME}-${TAG}-x86_64-apple-darwin.tar.gz" >>$GITHUB_OUTPUT
echo "asset-x86_64-unknown-linux-gnu=${NAME}-${TAG}-x86_64-unknown-linux-gnu.tar.gz" >>$GITHUB_OUTPUT
echo "asset-x86_64-pc-windows-gnu=${NAME}-${TAG}-x86_64-pc-windows-gnu.zip" >>$GITHUB_OUTPUT
echo "asset-aarch64-apple-darwin=${NAME}-${TAG}-aarch64-apple-darwin.tar.gz" >>$GITHUB_OUTPUT
echo "asset-aarch64-unknown-linux-gnu=${NAME}-${TAG}-aarch64-unknown-linux-gnu.tar.gz" >>$GITHUB_OUTPUT
- name: Checksum
run: >
sha256sum
${{ steps.asset.outputs.asset-x86_64-apple-darwin }}
${{ steps.asset.outputs.asset-x86_64-unknown-linux-gnu }}
${{ steps.asset.outputs.asset-x86_64-pc-windows-gnu }}
${{ steps.asset.outputs.asset-aarch64-apple-darwin }}
${{ steps.asset.outputs.asset-aarch64-unknown-linux-gnu }}
| tee checksum.txt
- name: Update tap
run: >
name="Zabrze"
bin="zabrze"
desc="ZSH abbreviation expansion plugin"
homepage="https://github.com/${{ github.repository }}"
repo="https://github.com/${{ github.repository }}"
tag="${GITHUB_REF#refs/tags/}"
version="${tag#v}"
x86_64_darwin="${{ steps.asset.outputs.asset-x86_64-apple-darwin }}"
x86_64_darwin_sha256="$(sha256sum "${{ steps.asset.outputs.asset-x86_64-apple-darwin }}" | awk '{ print $1 }')"
x86_64_linux="${{ steps.asset.outputs.asset-x86_64-unknown-linux-gnu }}"
x86_64_linux_sha256="$(sha256sum "${{ steps.asset.outputs.asset-x86_64-unknown-linux-gnu }}" | awk '{ print $1 }')"
aarch64_darwin="${{ steps.asset.outputs.asset-aarch64-apple-darwin }}"
aarch64_darwin_sha256="$(sha256sum "${{ steps.asset.outputs.asset-aarch64-apple-darwin }}" | awk '{ print $1 }')"
aarch64_linux="${{ steps.asset.outputs.asset-aarch64-unknown-linux-gnu }}"
aarch64_linux_sha256="$(sha256sum "${{ steps.asset.outputs.asset-aarch64-unknown-linux-gnu }}" | awk '{ print $1 }')"
envsubst <formula.rb.tmpl >zabrze.rb
- name: Push tap
uses: dmnemec/copy_file_to_another_repo_action@v1.1.1
env:
API_TOKEN_GITHUB: ${{ secrets.GH_ACCESS_TOKEN }}
with:
source_file: zabrze.rb
destination_repo: Ryooooooga/homebrew-tap
destination_folder: Formula
user_email: ryooooooga+bot@users.noreply.github.com
user_name: tap-bot
commit_message: brew formula update for zabrze
- name: Upload
uses: softprops/action-gh-release@v1
with:
files: |
checksum.txt
${{ steps.asset.outputs.asset-x86_64-apple-darwin }}
${{ steps.asset.outputs.asset-x86_64-unknown-linux-gnu }}
${{ steps.asset.outputs.asset-x86_64-pc-windows-gnu }}
${{ steps.asset.outputs.asset-aarch64-apple-darwin }}
${{ steps.asset.outputs.asset-aarch64-unknown-linux-gnu }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish:
name: Publish
runs-on: ubuntu-latest
needs: [release]
steps:
- uses: actions/checkout@v3
- uses: katyo/publish-crates@v1
with:
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}