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 - name: cargo build 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 - name: cargo fmt 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: cargo login uses: actions-rs/cargo@v1 with: command: login args: ${{ secrets.cargotoken }} - name: cargo publish uses: actions-rs/cargo@v1 with: command: 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.githubtoken }}