Skip to content

ci(workflows): add ci and cd pipelines #1

ci(workflows): add ci and cd pipelines

ci(workflows): add ci and cd pipelines #1

Workflow file for this run

name: CD
on:
push:
branches: [main]
env:
CARGO_TERM_COLOR: always
BIN_NAME: nuke-my-sessions
jobs:
ci:
uses: ./.github/workflows/ci.yml
build:
needs: ci
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
os: macos-14
asset: nuke-my-sessions-macos-arm64
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
asset: nuke-my-sessions-linux-amd64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
- run: cargo build --release --locked --target ${{ matrix.target }}
- name: Stage artifact
run: |
mkdir -p dist
cp target/${{ matrix.target }}/release/${{ env.BIN_NAME }} dist/${{ matrix.asset }}
- uses: actions/upload-artifact@v7
with:
name: ${{ matrix.asset }}
path: dist/${{ matrix.asset }}
if-no-files-found: error
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
path: dist
merge-multiple: true
- name: Publish rolling latest release
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release delete latest --yes --cleanup-tag || true
gh release create latest dist/* \
--target "${GITHUB_SHA}" \
--title "latest (${GITHUB_SHA::7})" \
--notes "Rolling build from ${GITHUB_SHA}." \
--prerelease