Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix CI Releases #407

Merged
merged 4 commits into from
Dec 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/ci-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,3 @@ jobs:
- name: Test
continue-on-error: true
run: cargo run ${{ env.FLAGS }} -- outdated

169 changes: 83 additions & 86 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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
Expand All @@ -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: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading