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

94 lines
2.5 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-latest
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
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
- uses: actions-rs/cargo@v1
with:
command: build
args: --release ${{ matrix.options }}
fmt:
runs-on: ubuntu-latest
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
publish:
runs-on: ubuntu-latest
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
- name: Build
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.githubtoken }}
- uses: actions-rs/cargo@v1
with:
command: login
args: ${{ secrets.cargotoken }}
- uses: actions-rs/cargo@v1
with:
command: publish