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 - 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 - 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 - 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 }}