summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Oram <dev@mitmaro.ca>2023-07-22 17:22:27 -0230
committerTim Oram <dev@mitmaro.ca>2023-07-22 23:52:06 -0230
commite61a25e5a0e93efcf100c29329775c19d721100f (patch)
tree5b19f742d92616f6a823a99802e443965f5e5cda
parentd13663f4cecf45ab597d69df9909ee9824ffbc24 (diff)
Fix and clean workflows
This change updates, addresses some minor issues with the master-coverage, release and pull-request workflows; and completely rewrites the release-latest workflow. This includes adding new release targets for the latest release, and using a more reliable process for uploading the build artifacts to GitHub releases.
-rw-r--r--.github/dependabot.yml2
-rwxr-xr-x.github/scripts/push-latest-release.bash34
-rw-r--r--.github/workflows/master-coverage.yml7
-rw-r--r--.github/workflows/pull-request.yml13
-rw-r--r--.github/workflows/release-latest.yml279
-rw-r--r--.github/workflows/release.yml302
6 files changed, 404 insertions, 233 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 04062d0..a5ed7e1 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -5,4 +5,4 @@ updates:
schedule:
interval: daily
time: "08:30"
- open-pull-requests-limit: 10
+ open-pull-requests-limit: 0
diff --git a/.github/scripts/push-latest-release.bash b/.github/scripts/push-latest-release.bash
deleted file mode 100755
index 745f998..0000000
--- a/.github/scripts/push-latest-release.bash
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-set -u
-set -o pipefail
-
-assets="$(curl -X GET \
- -H "accept: application/vnd.github.dorian-preview+json" \
- -H "content-type: application/json" \
- -H "authorization: token $GITHUB_ACCESS_TOKEN" \
- "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/$TARGET_RELEASE_ID/assets" | tr -d '\n')"
-
-assets="$(python -c "
-import json
-assets = json.loads('$assets')
-for asset in assets:
- print(asset['name'], asset['id'])
-")"
-
-while read name id; do
- if [[ "$name" == "$ASSET_NAME" ]]; then
- curl -X DELETE \
- -H "accept: application/vnd.github.dorian-preview+json" \
- -H "authorization: token $GITHUB_ACCESS_TOKEN" \
- "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/assets/$id"
- fi
-done <<< "$assets"
-
-curl -X POST \
- -H "accept: application/vnd.github.dorian-preview+json" \
- -H "content-type: $CONTENT_TYPE" \
- -H "authorization: token $GITHUB_ACCESS_TOKEN" \
- --data-binary @"$FILE_PATH" \
- "https://uploads.github.com/repos/$GITHUB_REPOSITORY/releases/$TARGET_RELEASE_ID/assets?name=$ASSET_NAME"
diff --git a/.github/workflows/master-coverage.yml b/.github/workflows/master-coverage.yml
index 763391e..3b702b4 100644
--- a/.github/workflows/master-coverage.yml
+++ b/.github/workflows/master-coverage.yml
@@ -22,12 +22,7 @@ jobs:
run: |
cargo +nightly tarpaulin --workspace --all-features --ignore-tests --line --output-dir coverage --timeout 10 --out Lcov
- name: Post to Coveralls
- uses: coverallsapp/github-action@master
+ uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "coverage/lcov.info"
- - name: Archive code coverage results
- uses: actions/upload-artifact@v1
- with:
- name: code-coverage-report
- path: coverage/lcov.info
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index 21a0d0a..061c4d4 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -2,8 +2,7 @@ name: Pull Request
on:
pull_request:
- # run CI/CD against master as well, to generate cache
- push:
+ push: # run CI/CD against master as well, to generate cache
branches:
- master
@@ -15,7 +14,7 @@ jobs:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- - uses: baptiste0928/cargo-install@v1
+ - uses: baptiste0928/cargo-install@v2
with:
crate: cargo-make
- name: Test
@@ -33,7 +32,7 @@ jobs:
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- - uses: baptiste0928/cargo-install@v1
+ - uses: baptiste0928/cargo-install@v2
with:
crate: cargo-make
- run: cargo make lint-stable
@@ -54,7 +53,7 @@ jobs:
toolchain: nightly
components: rustfmt
- uses: Swatinem/rust-cache@v2
- - uses: baptiste0928/cargo-install@v1
+ - uses: baptiste0928/cargo-install@v2
with:
crate: cargo-make
- run: cargo make format
@@ -74,7 +73,7 @@ jobs:
run: |
cargo +nightly tarpaulin --workspace --all-features --ignore-tests --line --output-dir coverage --timeout 10 --out Lcov
- name: Post to Coveralls
- uses: coverallsapp/github-action@master
+ uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: "coverage/lcov.info"
@@ -86,7 +85,7 @@ jobs:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- - uses: baptiste0928/cargo-install@v1
+ - uses: baptiste0928/cargo-install@v2
with:
crate: cargo-make
- name: Test
diff --git a/.github/workflows/release-latest.yml b/.github/workflows/release-latest.yml
index c3efbb0..7041df3 100644
--- a/.github/workflows/release-latest.yml
+++ b/.github/workflows/release-latest.yml
@@ -1,21 +1,33 @@
name: Release Latest
on:
- push:
- branches:
- - master
+ push:
+ branches:
+ - master
+
jobs:
- ubuntu:
- name: Ubuntu
+ update-latest-tag:
runs-on: ubuntu-latest
- timeout-minutes: 10
+ name: Update Latest Tag
env:
- TARGET_RELEASE_ID: 18843342
- GITHUB_ACCESS_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- REPOSITORY: "MitMaro/git-interactive-rebase-tool"
+ TARGET_RELEASE_ID: 18843342
+ GITHUB_ACCESS_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
+ REPOSITORY: "MitMaro/git-interactive-rebase-tool"
+ DEFAULT_BRANCH: "master"
+ steps:
+ - uses: actions/checkout@v3
+ - name: "Update Tag and Title"
+ run: "./.github/scripts/update-tag.bash"
+
+ debian:
+ name: Debian Latest
+ runs-on: ubuntu-latest
+ needs: update-latest-tag
+ timeout-minutes: 10
+ container:
+ image: 'docker://debian:sid-slim'
steps:
- uses: actions/checkout@v3
- - uses: Swatinem/rust-cache@v2
- name: "System Setup"
run: |
apt-get update;
@@ -23,40 +35,239 @@ jobs:
env:
DEBIAN_FRONTEND: noninteractive
TZ: "America/St_Johns"
- - uses: dtolnay/rust-toolchain@stable
- - uses: baptiste0928/cargo-install@v1
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: nightly
+ - uses: baptiste0928/cargo-install@v2
with:
crate: cargo-deb
- name: "Build Deb"
- run: cargo +stable deb --output "target/debian/git-interactive-rebase-tool-ubuntu_amd64.deb" -- --features dev
+ run: cargo +nightly deb --output "target/debian/debian_amd64-interactive-rebase-tool.deb" -- --features dev
- name: Upload
- env:
- FILE_PATH: "target/debian/git-interactive-rebase-tool-ubuntu_amd64.deb"
- ASSET_NAME: git-interactive-rebase-tool-ubuntu_amd64.deb
- CONTENT_TYPE: "application/vnd.debian.binary-package"
- run: "./.github/scripts/push-latest-release.bash"
- - name: "Update Tag and Title"
- env:
- DEFAULT_BRANCH: "master"
- run: "./.github/scripts/update-tag.bash"
- macos:
- name: MacOS
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debian/debian_amd64-interactive-rebase-tool.deb"
+ artifactErrorsFailBuild: true
+ artifactContentType: "application/vnd.debian.binary-package"
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ ubuntu:
+ name: Ubuntu Latest
+ runs-on: ubuntu-latest
+ needs: update-latest-tag
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: nightly
+ - uses: baptiste0928/cargo-install@v2
+ with:
+ crate: cargo-deb
+ - name: "Build Deb"
+ run: cargo +nightly deb --output "target/debian/ubuntu_amd64-interactive-rebase-tool.deb" -- --features dev
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debian/ubuntu_amd64-interactive-rebase-tool.deb"
+ artifactErrorsFailBuild: true
+ artifactContentType: "application/vnd.debian.binary-package"
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ alpine:
+ name: Alpine Latest
+ runs-on: ubuntu-latest
+ needs: update-latest-tag
+ container:
+ image: 'docker://rust:alpine'
+ steps:
+ - uses: actions/checkout@v3
+ - run: |
+ apk update
+ apk upgrade
+ apk add bash musl-dev zlib-dev zlib-static
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: nightly
+ - name: "Build"
+ run: |
+ cargo build --features dev
+ cp target/debug/interactive-rebase-tool target/debug/alpine_amd64-interactive-rebase-tool
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debug/alpine_amd64-interactive-rebase-tool"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ arch:
+ name: Arch Latest
+ runs-on: ubuntu-latest
+ needs: update-latest-tag
+ container:
+ image: 'docker://archlinux:base-devel'
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: nightly
+ - name: "Build"
+ run: |
+ cargo build --features dev
+ cp target/debug/interactive-rebase-tool target/debug/arch_amd64-interactive-rebase-tool
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debug/arch_amd64-interactive-rebase-tool"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ fedora:
+ name: Fedora Latest
+ runs-on: ubuntu-latest
+ needs: update-latest-tag
+ container:
+ image: 'docker://fedora:latest'
+ steps:
+ - uses: actions/checkout@v3
+ - run: |
+ dnf install curl dnf-plugins-core cmake gcc clang make -y
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: nightly
+ - name: "Build"
+ run: |
+ cargo build --features dev
+ cp target/debug/interactive-rebase-tool target/debug/fedora_amd64-interactive-rebase-tool
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debug/fedora_amd64-interactive-rebase-tool"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ macos-amd64:
+ name: MacOS amd64 Latest
runs-on: macos-latest
timeout-minutes: 10
- env:
- TARGET_RELEASE_ID: 18843342
- GITHUB_ACCESS_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- REPOSITORY: "MitMaro/git-interactive-rebase-tool"
+ needs: update-latest-tag
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
- name: "Build"
- run: cargo build --features dev --release
+ run: |
+ cargo build --features dev
+ cp target/debug/interactive-rebase-tool target/debug/macos-amd64-interactive-rebase-tool
- name: Upload
- env:
- FILE_PATH: "target/release/interactive-rebase-tool"
- ASSET_NAME: macos-interactive-rebase-tool
- CONTENT_TYPE: "application/x-mach-binary"
- run: "./.github/scripts/push-latest-release.bash"
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/debug/macos-amd64-interactive-rebase-tool"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ macos-arm:
+ name: MacOS ARM Latest
+ runs-on: macos-latest
+ timeout-minutes: 10
+ needs: update-latest-tag
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@nightly
+ with:
+ toolchain: nightly
+ targets: aarch64-apple-darwin
+ - name: "Build"
+ run: |
+ cargo build --target aarch64-apple-darwin --features dev
+ cp target/aarch64-apple-darwin/debug/interactive-rebase-tool target/aarch64-apple-darwin/debug/macos-arm-interactive-rebase-tool
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/aarch64-apple-darwin/debug/macos-arm-interactive-rebase-tool"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
+
+ windows:
+ name: Windows Latest
+ runs-on: windows-latest
+ timeout-minutes: 10
+ needs: update-latest-tag
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@stable
+ - name: "Build"
+ run: |
+ cargo rustc --target x86_64-pc-windows-msvc --release --bin interactive-rebase-tool
+ copy target/x86_64-pc-windows-msvc/release/interactive-rebase-tool.exe target/x86_64-pc-windows-msvc/release/windows_amd64-interactive-rebase-tool.exe
+ - name: Upload
+ uses: ncipollo/release-action@v1
+ with:
+ tag: latest
+ allowUpdates: true
+ artifacts: "target/x86_64-pc-windows-msvc/release/windows_amd64-interactive-rebase-tool.exe"
+ artifactErrorsFailBuild: true
+ replacesArtifacts: true
+ omitBodyDuringUpdate: true
+ omitDraftDuringUpdate: true
+ omitNameDuringUpdate: true
+ makeLatest: false
+ prerelease: true
+ updateOnlyUnreleased: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index eb9cca8..0245502 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,158 +1,158 @@
name: Release Packages
on:
- release:
- types: [published]
+ release:
+ types: [ published ]
jobs:
- build-ubuntu-legacy:
- strategy:
- matrix:
- version: ['14.04', '16.04']
- runs-on: ubuntu-latest
- timeout-minutes: 10
- container:
- image: 'docker://ubuntu:${{ matrix.version }}'
- steps:
- - name: "Get Tag Name"
- id: ref
- shell: bash
- run: |
- ref="${{ github.ref }}";
- ref="${ref//refs\/heads\//}";
- ref="${ref//refs\/tags\//}";
- ref="${ref//master/dev}";
- echo "$ref";
- echo "::set-output name=name::$ref"
- - uses: actions/checkout@v3
- # manually install and use rustup, since dtolnay/rust-toolchain is not supported on older versions of Ubuntu
- - name: "System Setup"
- run: |
- apt-get update;
- apt-get --assume-yes -f install curl build-essential pkg-config;
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable -y;
- $HOME/.cargo/bin/cargo install --force cargo-deb
- env:
- DEBIAN_FRONTEND: noninteractive
- TZ: "America/St_Johns"
- - name: "Build Deb"
- run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-ubuntu-${{ matrix.version }}_amd64.deb"
- - name: "Upload Release"
- uses: softprops/action-gh-release@v1
- with:
- files: |
- target/debian/*.deb
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- build-ubuntu:
- strategy:
- matrix:
- version: ['18.04', '20.04', '22.04', '22.10', '23.04']
- runs-on: ubuntu-latest
- timeout-minutes: 10
- container:
- image: 'docker://ubuntu:${{ matrix.version }}'
- steps:
- - name: "Get Tag Name"
- id: ref
- shell: bash
- run: |
- ref="${{ github.ref }}";
- ref="${ref//refs\/heads\//}";
- ref="${ref//refs\/tags\//}";
- ref="${ref//master/dev}";
- echo "$ref";
- echo "::set-output name=name::$ref"
- - uses: actions/checkout@v3
- - name: "System Setup"
- run: |
- apt-get update;
- apt-get --assume-yes -f install curl build-essential pkg-config;
- env:
- DEBIAN_FRONTEND: noninteractive
- TZ: "America/St_Johns"
- - uses: dtolnay/rust-toolchain@stable
- - uses: baptiste0928/cargo-install@v1
- with:
- crate: cargo-deb
- - name: "Build Deb"
- run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-ubuntu-${{ matrix.version }}_amd64.deb"
- - name: "Upload Release"
- uses: softprops/action-gh-release@v1
- with:
- files: |
- target/debian/*.deb
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build-ubuntu-legacy:
+ strategy:
+ matrix:
+ version: [ '14.04', '16.04' ]
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ container:
+ image: 'docker://ubuntu:${{ matrix.version }}'
+ steps:
+ - name: "Get Tag Name"
+ id: ref
+ shell: bash
+ run: |
+ ref="${{ github.ref }}";
+ ref="${ref//refs\/heads\//}";
+ ref="${ref//refs\/tags\//}";
+ ref="${ref//master/dev}";
+ echo "$ref";
+ echo "::set-output name=name::$ref"
+ - uses: actions/checkout@v3
+ # manually install and use rustup, since dtolnay/rust-toolchain is not supported on older versions of Ubuntu
+ - name: "System Setup"
+ run: |
+ apt-get update;
+ apt-get --assume-yes -f install curl build-essential pkg-config;
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable -y;
+ $HOME/.cargo/bin/cargo install --force cargo-deb
+ env:
+ DEBIAN_FRONTEND: noninteractive
+ TZ: "America/St_Johns"
+ - name: "Build Deb"
+ run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-ubuntu-${{ matrix.version }}_amd64.deb"
+ - name: "Upload Release"
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ target/debian/*.deb
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build-ubuntu:
+ strategy:
+ matrix:
+ version: [ '18.04', '20.04', '22.04', '22.10', '23.04' ]
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ container:
+ image: 'docker://ubuntu:${{ matrix.version }}'
+ steps:
+ - name: "Get Tag Name"
+ id: ref
+ shell: bash
+ run: |
+ ref="${{ github.ref }}";
+ ref="${ref//refs\/heads\//}";
+ ref="${ref//refs\/tags\//}";
+ ref="${ref//master/dev}";
+ echo "$ref";
+ echo "::set-output name=name::$ref"
+ - uses: actions/checkout@v3
+ - name: "System Setup"
+ run: |
+ apt-get update;
+ apt-get --assume-yes -f install curl build-essential pkg-config;
+ env:
+ DEBIAN_FRONTEND: noninteractive
+ TZ: "America/St_Johns"
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: baptiste0928/cargo-install@v2
+ with:
+ crate: cargo-deb
+ - name: "Build Deb"
+ run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-ubuntu-${{ matrix.version }}_amd64.deb"
+ - name: "Upload Release"
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ target/debian/*.deb
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- build-debian:
- strategy:
- matrix:
- version: ['10', '11', '12', 'sid']
- runs-on: ubuntu-latest
- timeout-minutes: 10
- container:
- image: 'docker://debian:${{ matrix.version }}-slim'
- steps:
- - name: "Get Tag Name"
- id: ref
- shell: bash
- run: |
- ref="${{ github.ref }}";
- ref="${ref//refs\/heads\//}";
- ref="${ref//refs\/tags\//}";
- ref="${ref//master/dev}";
- echo "$ref";
- echo "::set-output name=name::$ref"
- - uses: actions/checkout@v3
- - name: "System Setup"
- run: |
- apt-get update;
- apt-get --assume-yes -f install curl build-essential pkg-config;
- env:
- DEBIAN_FRONTEND: noninteractive
- TZ: "America/St_Johns"
- - uses: dtolnay/rust-toolchain@stable
- - uses: baptiste0928/cargo-install@v1
- with:
- crate: cargo-deb
- - name: "Build Deb"
- run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-debian-${{ matrix.version }}_amd64.deb"
- - name: "Upload Release"
- uses: softprops/action-gh-release@v1
- with:
- files: |
- target/debian/*.deb
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- build-macos:
- runs-on: macos-latest
- timeout-minutes: 5
- steps:
- - uses: actions/checkout@v3
- - uses: dtolnay/rust-toolchain@stable
- - name: "Build"
- run: "cargo +stable build --release"
- - name: "Rename"
- run: "cp target/release/interactive-rebase-tool target/release/macos-interactive-rebase-tool"
- - name: "Upload Release"
- uses: softprops/action-gh-release@v1
- with:
- files: target/release/macos-interactive-rebase-tool
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build-debian:
+ strategy:
+ matrix:
+ version: [ '10', '11', '12', 'sid' ]
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ container:
+ image: 'docker://debian:${{ matrix.version }}-slim'
+ steps:
+ - name: "Get Tag Name"
+ id: ref
+ shell: bash
+ run: |
+ ref="${{ github.ref }}";
+ ref="${ref//refs\/heads\//}";
+ ref="${ref//refs\/tags\//}";
+ ref="${ref//master/dev}";
+ echo "$ref";
+ echo "::set-output name=name::$ref"
+ - uses: actions/checkout@v3
+ - name: "System Setup"
+ run: |
+ apt-get update;
+ apt-get --assume-yes -f install curl build-essential pkg-config;
+ env:
+ DEBIAN_FRONTEND: noninteractive
+ TZ: "America/St_Johns"
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: baptiste0928/cargo-install@v2
+ with:
+ crate: cargo-deb
+ - name: "Build Deb"
+ run: $HOME/.cargo/bin/cargo +stable deb --output "target/debian/git-interactive-rebase-tool-${{ steps.ref.outputs.name }}-debian-${{ matrix.version }}_amd64.deb"
+ - name: "Upload Release"
+ uses: softprops/action-gh-release@v1
+ with:
+ files: |
+ target/debian/*.deb
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build-macos:
+ runs-on: macos-latest
+ timeout-minutes: 5
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@stable
+ - name: "Build"
+ run: "cargo +stable build --release"
+ - name: "Rename"
+ run: "cp target/release/interactive-rebase-tool target/release/macos-interactive-rebase-tool"
+ - name: "Upload Release"
+ uses: softprops/action-gh-release@v1
+ with:
+ files: target/release/macos-interactive-rebase-tool
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- build-windows:
- runs-on: windows-latest
- timeout-minutes: 10
- steps:
- - uses: actions/checkout@v3
- - uses: dtolnay/rust-toolchain@stable
- - name: "Build"
- run: "cargo rustc --target x86_64-pc-windows-msvc --release --bin interactive-rebase-tool"
- - name: "Upload Release"
- uses: softprops/action-gh-release@v1
- with:
- files: target/x86_64-pc-windows-msvc/release/interactive-rebase-tool.exe
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ build-windows:
+ runs-on: windows-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v3
+ - uses: dtolnay/rust-toolchain@stable
+ - name: "Build"
+ run: "cargo rustc --target x86_64-pc-windows-msvc --release --bin interactive-rebase-tool"
+ - name: "Upload Release"
+ uses: softprops/action-gh-release@v1
+ with:
+ files: target/x86_64-pc-windows-msvc/release/interactive-rebase-tool.exe
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}