chore: Remove snap, appimage and crates.io #573
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CD | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- v* | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: macOS-latest | |
target: x86_64-apple-darwin | |
rust_flags: "" | |
features: "" | |
binary_postfix: "" | |
upx_args: --best | |
strip: true | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
rust_flags: "" | |
features: "" | |
binary_postfix: "" | |
upx_args: --best --lzma | |
strip: true | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
rust_flags: "" | |
features: "" | |
binary: "taskwarrior-tui-x86_64-unknown-linux-musl" | |
upx_args: --best --lzma | |
strip: true | |
- os: windows-latest | |
target: x86_64-pc-windows-gnu | |
rust_flags: -C target-feature=+crt-static | |
features: "" | |
binary_postfix: ".exe" | |
upx_args: -9 | |
strip: false | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
rust_flags: -C target-feature=+crt-static | |
features: "" | |
binary_postfix: ".exe" | |
upx_args: -9 | |
strip: false | |
- os: windows-latest | |
target: i686-pc-windows-msvc | |
rust_flags: -C target-feature=+crt-static | |
features: "" | |
binary_postfix: ".exe" | |
upx_args: -9 | |
strip: false | |
env: | |
RUSTFLAGS: ${{ matrix.rust_flags }} | |
MACOSX_DEPLOYMENT_TARGET: 10.7 | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
default: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release ${{matrix.features}} --target=${{ matrix.target }} | |
- name: Compress binaries | |
uses: svenstaro/upx-action@v2 | |
with: | |
files: | | |
target/${{ matrix.target }}/release/taskwarrior-tui${{ matrix.binary_postfix }} | |
args: ${{ matrix.upx_args }} | |
strip: ${{ matrix.strip }} | |
- name: Packaging binary | |
shell: bash | |
run: | | |
cd target/${{ matrix.target }}/release | |
tar czvf taskwarrior-tui-${{ matrix.target }}.tar.gz taskwarrior-tui${{ matrix.binary_postfix }} | |
if [[ ${{ runner.os }} == 'Windows' ]]; then | |
certutil -hashfile taskwarrior-tui-${{ matrix.target }}.tar.gz sha256 | grep -E [A-Fa-f0-9]{64} > taskwarrior-tui-${{ matrix.target }}.sha256 | |
else | |
shasum -a 256 taskwarrior-tui-${{ matrix.target }}.tar.gz > taskwarrior-tui-${{ matrix.target }}.sha256 | |
fi | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: taskwarrior-tui | |
path: target/${{ matrix.target }}/release/taskwarrior-tui-${{ matrix.target }}.tar.gz | |
- name: Releasing assets | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
target/${{ matrix.target }}/release/taskwarrior-tui-${{ matrix.target }}.tar.gz | |
target/${{ matrix.target }}/release/taskwarrior-tui-${{ matrix.target }}.sha256 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
homebrew: | |
name: Bump Homebrew formula | |
runs-on: macos-latest | |
steps: | |
- name: Update Homebrew formula | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: dawidd6/action-homebrew-bump-formula@v3 | |
with: | |
token: ${{secrets.HOMEBREW_TOKEN}} | |
formula: taskwarrior-tui | |
deb: | |
name: Publish deb package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v2 | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release | |
- name: Install cargo-deb | |
run: cargo install cargo-deb | |
- name: Build deb package | |
run: cargo deb -p taskwarrior-tui -o target/debian/taskwarrior-tui.deb | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: taskwarrior-tui | |
path: target/debian/taskwarrior-tui.deb | |
- name: Releasing assets | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
target/debian/*.deb | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
rpm: | |
name: Publish rpm package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v2 | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release | |
- name: Install rpm | |
run: sudo apt-get install rpm | |
- name: Install cargo-rpm | |
run: cargo install cargo-rpm | |
- name: Build rpm package | |
run: cargo rpm build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: taskwarrior-tui | |
path: target/release/rpmbuild/RPMS/x86_64/taskwarrior-tui-*.x86_64.rpm | |
- name: Releasing assets | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
target/release/rpmbuild/RPMS/x86_64/taskwarrior-tui-*.x86_64.rpm | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
aur: | |
name: Publish aur package | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v2 | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release | |
- name: Install cargo-aur | |
run: cargo install cargo-aur | |
- name: Build aur package | |
run: cargo aur | |
grcov: | |
runs-on: ubuntu-latest | |
env: | |
TASKRC: taskwarrior-testdata/.taskrc | |
TASKDATA: taskwarrior-testdata/.task | |
RUST_BACKTRACE: full | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
profile: minimal | |
- run: sudo apt-get update | |
- name: Compile taskwarrior | |
run: | | |
cd /tmp | |
git clone https://github.com/GothenburgBitFactory/taskwarrior | |
cd taskwarrior | |
git checkout v3.0.0 | |
cmake -DCMAKE_BUILD_TYPE=release -DENABLE_SYNC=OFF . | |
make | |
sudo make install | |
- run: | | |
task --version | |
- uses: actions/checkout@v2 | |
with: | |
repository: kdheepak/taskwarrior-testdata | |
path: taskwarrior-testdata | |
- run: | | |
# prepare taskwarrior, initial setup | |
task rc.confirmation=off || echo 0 | |
- name: Execute tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests" | |
# Note that `actions-rs/grcov` Action can install `grcov` too, | |
# but can't use faster installation methods yet. | |
# As a temporary experiment `actions-rs/install` Action plugged in here. | |
# Consider **NOT** to copy that into your workflow, | |
# but use `actions-rs/grcov` only | |
- name: Pre-installing grcov | |
uses: actions-rs/[email protected] | |
with: | |
crate: grcov | |
use-tool-cache: true | |
- name: Gather coverage data | |
id: coverage | |
uses: actions-rs/[email protected] | |
- name: Coveralls upload | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel: true | |
path-to-lcov: ${{ steps.coverage.outputs.report }} | |
grcov_finalize: | |
runs-on: ubuntu-latest | |
needs: grcov | |
steps: | |
- name: Coveralls finalization | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel-finished: true |