You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xremap/.github/workflows/build.yml

107 lines
2.7 KiB
YAML

name: cargo
on:
push:
branches:
- master
tags:
- v*
pull_request:
types:
- opened
- synchronize
- reopened
schedule:
- cron: '00 15 * * *' # 7:00 PST (-8), 8:00 PDT (-7)
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-18.04
strategy:
fail-fast: false
matrix:
options:
- ''
- --features x11
- --features gnome
- --features sway
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
with:
key: ubuntu-18.04
- name: cargo build
run: cargo build --release ${{ matrix.options }}
fmt:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: cargo fmt
run: cargo fmt -- --check
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
with:
key: ubuntu-18.04
- run: cargo test
publish:
runs-on: ubuntu-18.04
needs:
- build
- test
if: ${{ startsWith(github.ref, 'refs/tags/') }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
with:
key: ubuntu-18.04
- name: cargo login
run: cargo login "$CARGO_TOKEN"
env:
CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }}
- run: cargo publish
- name: Package
run: |
for feature in x11 gnome sway others; do
if [[ "$feature" = "others" ]]; then
cargo build --release
else
cargo build --release --features "$feature"
fi
(cd target/release && zip "xremap-linux-x86_64-${feature}.zip" xremap && rm xremap)
done
mkdir package && mv target/release/xremap-*.zip package/
- name: Release
run: |
export VERSION=$(echo "$GITHUB_REF" | sed -e 's!refs/tags/!!')
curl -L "https://github.com/tcnksm/ghr/releases/download/${GHR_VERSION}/ghr_${GHR_VERSION}_linux_amd64.tar.gz" | tar xvz
"ghr_${GHR_VERSION}_linux_amd64/ghr" -u k0kubun -r xremap -replace -n "$VERSION" "$VERSION" package/
env:
GHR_VERSION: v0.14.0
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}