diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml index 2ecddd0..b47d572 100644 --- a/.github/workflows/ci-pr.yml +++ b/.github/workflows/ci-pr.yml @@ -89,4 +89,3 @@ jobs: - name: Test continue-on-error: true run: cargo run ${{ env.FLAGS }} -- outdated - diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b0070e1..d8226ca 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,50 +2,49 @@ name: release on: push: tags: - - 'v*.*.*' + - "v*.*.*" jobs: create-windows-binaries: runs-on: windows-latest steps: - - uses: actions/checkout@v3 - - - name: Install stable - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - name: Build cargo-outdated - run: | - cargo build --release - - - name: Get the version - shell: bash - id: tagName - run: | - VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) - echo "::set-output name=tag::$VERSION" - - - name: Build package - id: package - shell: bash - run: | - ARCHIVE_TARGET="x86_64-pc-windows-msvc" - ARCHIVE_NAME="cargo-outdated-${{ steps.tagName.outputs.tag }}-$ARCHIVE_TARGET" - ARCHIVE_FILE="${ARCHIVE_NAME}.zip" - 7z a ${ARCHIVE_FILE} ./target/release/cargo-outdated.exe - echo "::set-output name=file::${ARCHIVE_FILE}" - echo "::set-output name=name::${ARCHIVE_NAME}.zip" - - - name: Upload artifacts - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.package.outputs.name }} - path: ${{ steps.package.outputs.file }} + - uses: actions/checkout@v3 - create-unix-binaries: + - name: Install stable + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Build cargo-outdated + run: | + cargo build --release + + - name: Get the version + shell: bash + id: tagName + run: | + VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) + echo "::set-output name=tag::$VERSION" + + - name: Build package + id: package + shell: bash + run: | + ARCHIVE_TARGET="x86_64-pc-windows-msvc" + ARCHIVE_NAME="cargo-outdated-${{ steps.tagName.outputs.tag }}-$ARCHIVE_TARGET" + ARCHIVE_FILE="${ARCHIVE_NAME}.zip" + 7z a ${ARCHIVE_FILE} ./target/release/cargo-outdated.exe + echo "::set-output name=file::${ARCHIVE_FILE}" + echo "::set-output name=name::${ARCHIVE_NAME}.zip" + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.package.outputs.name }} + path: ${{ steps.package.outputs.file }} + create-unix-binaries: strategy: matrix: os: [ubuntu-latest, macos-latest] @@ -58,55 +57,53 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - target: ${{ matrix.target }} - override: true - - - name: Install musl - if: contains(matrix.target, 'linux-musl') - run: | - sudo apt-get install musl-tools - - - name: Build cargo-outdated - run: | - # TODO: Remember to add RUSTFLAGS=+crt-static for musl target when - # static linkage will not be the default behaviour - cargo build --release --features vendored-openssl --target ${{ matrix.target }} - - - name: Strip binary - run: | - strip target/${{ matrix.target }}/release/cargo-outdated - - - name: Get the version - id: tagName - run: | - VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) - echo "::set-output name=tag::$VERSION" - - - name: Build package - id: package - run: | - TAR_FILE=cargo-outdated-${{ steps.tagName.outputs.tag }}-${{ matrix.target }} - cd target/${{ matrix.target }}/release - tar -czvf $GITHUB_WORKSPACE/$TAR_FILE.tar.gz cargo-outdated - echo ::set-output "name=name::${TAR_FILE}" - echo ::set-output "name=file::${TAR_FILE}.tar.gz " - - - name: Upload artifacts - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.package.outputs.name }} - path: ${{ steps.package.outputs.file }} + - uses: actions/checkout@v3 + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: ${{ matrix.target }} + override: true - deploy: + - name: Install musl + if: contains(matrix.target, 'linux-musl') + run: | + sudo apt-get install musl-tools + + - name: Build cargo-outdated + run: | + # TODO: Remember to add RUSTFLAGS=+crt-static for musl target when + # static linkage will not be the default behaviour + cargo build --release --features vendored-openssl --target ${{ matrix.target }} + + - name: Strip binary + run: | + strip target/${{ matrix.target }}/release/cargo-outdated + - name: Get the version + id: tagName + run: | + VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) + echo "::set-output name=tag::$VERSION" + + - name: Build package + id: package + run: | + TAR_FILE=cargo-outdated-${{ steps.tagName.outputs.tag }}-${{ matrix.target }} + cd target/${{ matrix.target }}/release + tar -czvf $GITHUB_WORKSPACE/$TAR_FILE.tar.gz cargo-outdated + echo ::set-output "name=name::${TAR_FILE}" + echo ::set-output "name=file::${TAR_FILE}.tar.gz " + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.package.outputs.name }} + path: ${{ steps.package.outputs.file }} + + deploy: needs: [create-windows-binaries, create-unix-binaries] runs-on: ubuntu-latest @@ -132,12 +129,12 @@ jobs: echo "::set-output name=tag::$VERSION" - name: Download artifacts - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: path: ./binaries - name: Create a release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: name: v${{ steps.tagName.outputs.tag }} files: | diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 32deb21..6a62c78 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -56,11 +56,11 @@ jobs: - name: MSRV Check if: ${{ matrix.rust == '1.81.0' }} # Note we have to actually _run_ the application to check the MSRV. - # The standard `cargo check` may successfully build on an earlier + # The standard `cargo check` may successfully build on an earlier # Rust, but cargo-oudated by not be able to successfully run in such # environments. # - # Note2: we exclude git2-curl because it requires libgit2-sys which - # must match the same version that our internal cargo transitively + # Note2: we exclude git2-curl because it requires libgit2-sys which + # must match the same version that our internal cargo transitively # requires run: cargo run -- outdated -x git2-curl