diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml new file mode 100644 index 0000000..f05c87f --- /dev/null +++ b/.github/workflows/cd.yaml @@ -0,0 +1,66 @@ +name: CD + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +permissions: + contents: write + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: --deny warnings + RUSTDOCFLAGS: --deny warnings + +jobs: + release: + name: Release + strategy: + matrix: + include: + - os: ubuntu-latest + artifact_name: tracker + asset_name: tracker-linux-x86_64 + target: x86_64-unknown-linux-gnu + - os: windows-latest + artifact_name: tracker.exe + asset_name: tracker-windows-x86_64 + target: x86_64-pc-windows-msvc + - os: macos-latest + artifact_name: tracker + asset_name: tracker-macos-x86_64 + target: x86_64-apple-darwin + - os: macos-latest + artifact_name: tracker + asset_name: tracker-macos-aarch64 + target: aarch64-apple-darwin + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Build + run: cargo build --release --target ${{ matrix.target }} + + - name: Create archive + shell: bash + run: | + cd target/${{ matrix.target }}/release + if [ "${{ matrix.os }}" = "windows-latest" ]; then + 7z a -tzip ${{ matrix.asset_name }}.zip ${{ matrix.artifact_name }} + else + tar -czf ${{ matrix.asset_name }}.tar.gz ${{ matrix.artifact_name }} + fi + + - name: Create release and upload assets + uses: softprops/action-gh-release@v2 + with: + files: | + target/${{ matrix.target }}/release/${{ matrix.asset_name }}.* \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d50b27..b8a4f06 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,33 +8,6 @@ env: RUSTDOCFLAGS: --deny warnings jobs: - # test: - # name: Tests - # runs-on: ubuntu-latest - # steps: - # - name: Checkout repository - # uses: actions/checkout@v4 - - # - name: Cache Cargo artifacts - # uses: actions/cache@v4 - # with: - # path: | - # ~/.cargo/bin/ - # ~/.cargo/registry/index/ - # ~/.cargo/registry/cache/ - # ~/.cargo/git/db/ - # target/ - # key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} - - # - name: Install Rust toolchain - # uses: dtolnay/rust-toolchain@stable - - # - name: Run tests - # run: | - # cargo test --locked --workspace --all-features --all-targets - # # Workaround for https://github.com/rust-lang/cargo/issues/6669 - # cargo test --locked --workspace --all-features --doc - clippy: name: Clippy runs-on: ubuntu-latest @@ -59,7 +32,7 @@ jobs: - name: Run clippy lints run: cargo clippy --locked --workspace --all-targets --all-features -- --deny warnings - + format: name: Format runs-on: ubuntu-latest @@ -109,4 +82,31 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Check documentation - run: cargo doc --locked --workspace --all-features --document-private-items --no-deps \ No newline at end of file + run: cargo doc --locked --workspace --all-features --document-private-items --no-deps + + # test: + # name: Tests + # runs-on: ubuntu-latest + # steps: + # - name: Checkout repository + # uses: actions/checkout@v4 + + # - name: Cache Cargo artifacts + # uses: actions/cache@v4 + # with: + # path: | + # ~/.cargo/bin/ + # ~/.cargo/registry/index/ + # ~/.cargo/registry/cache/ + # ~/.cargo/git/db/ + # target/ + # key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} + + # - name: Install Rust toolchain + # uses: dtolnay/rust-toolchain@stable + + # - name: Run tests + # run: | + # cargo test --locked --workspace --all-features --all-targets + # # Workaround for https://github.com/rust-lang/cargo/issues/6669 + # cargo test --locked --workspace --all-features --doc