From f475af11ebcd80a5463feb4ebc2f37e60e2a93fa Mon Sep 17 00:00:00 2001 From: Brady Fomegne Date: Sat, 13 Apr 2024 20:46:06 +0100 Subject: [PATCH] ci: fix auto release --- .github/workflows/release.yml | 103 ++++++---------------------------- Cross.toml | 5 ++ ci/ubuntu-install-packages | 14 ----- 3 files changed, 23 insertions(+), 99 deletions(-) create mode 100644 Cross.toml delete mode 100644 ci/ubuntu-install-packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbaf50a..52e40c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,21 +23,21 @@ jobs: uses: actions/checkout@v4 - name: Get the release version from the tag if: env.VERSION == '' - run: echo "VERSION=$(echo ${{ github.ref_name }} | sed 's/v\(.*\)-.*/\1/')" >> $GITHUB_ENV + run: echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV - name: Show the version run: | echo "version is: $VERSION" - name: Check that tag version and Cargo.toml version are the same shell: bash run: | - if ! grep -q "version = \"$VERSION\"" Cargo.toml; then + if ! grep -q "version = \"$(echo $VERSION | sed 's/v\(.*\)-.*/\1/')\"" Cargo.toml; then echo "version does not match Cargo.toml" >&2 exit 1 fi - name: Create GitHub release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh release create v$VERSION --verify-tag --draft --title $VERSION + run: gh release create $VERSION --verify-tag --draft --title $VERSION outputs: version: ${{ env.VERSION }} @@ -133,12 +133,6 @@ jobs: - name: Checkout the repo uses: actions/checkout@v4 - - name: Install packages (Ubuntu) - if: matrix.os == 'ubuntu-latest' - shell: bash - run: | - ci/ubuntu-install-packages - - name: Install Rust uses: dtolnay/rust-toolchain@master with: @@ -208,10 +202,22 @@ jobs: - name: Creating directory for archive shell: bash run: | - mkdir -p "$ARCHIVE"/{complete,doc} + mkdir -p "$ARCHIVE" cp "$BIN" "$ARCHIVE"/ - cp {README.md,LICENSE,demo.gif} "$ARCHIVE"/ - cp {CHANGELOG.md} "$ARCHIVE"/doc/ + cp {README.md,LICENSE,demo.gif,CHANGELOG.md} "$ARCHIVE"/ + + - uses: actions/checkout@v4 + with: + repository: pythonbrad/afrim-man + fetch-depth: 1 + path: afrim-man + + - name: Build and Add documentation + shell: bash + run: | + ${{ env.CARGO }} install mdbook + mdbook build afrim-man + cp -r afrim-man/book "$ARCHIVE"/ - name: Build archive (Windows) shell: bash @@ -238,76 +244,3 @@ jobs: run: | version="${{ needs.create-release.outputs.version }}" gh release upload "$version" ${{ env.ASSET }} ${{ env.ASSET_SUM }} - - build-release-deb: - name: build-release-deb - needs: ["create-release"] - runs-on: ubuntu-latest - env: - TARGET: x86_64-unknown-linux-musl - # Emit backtraces on panics. - RUST_BACKTRACE: 1 - - steps: - - name: Checkout the repo - uses: actions/checkout@v4 - - - name: Install packages (Ubuntu) - shell: bash - run: | - ci/ubuntu-install-packages - - - name: Install Rust - uses: dtolnay/rust-toolchain@master - with: - toolchain: nightly - target: ${{ env.TARGET }} - - - name: Install cargo-deb - shell: bash - run: | - cargo install cargo-deb - - # 'cargo deb' does not seem to provide a way to specify an asset that is - # created at build time, such as afrim-wish's man page. To work around this, - # we force a debug build, copy out the man page (and shell completions) - # produced from that build, put it into a predictable location and then - # build the deb, which knows where to look. - - name: Build debug binary to create release assets - shell: bash - run: | - cargo build --target ${{ env.TARGET }} - bin="target/${{ env.TARGET }}/debug/afrim-wish" - echo "BIN=$bin" >> $GITHUB_ENV - - - name: Create deployment directory - shell: bash - run: | - dir=deployment/deb - mkdir -p "$dir" - echo "DEPLOY_DIR=$dir" >> $GITHUB_ENV - - - name: Build release binary - shell: bash - run: | - cargo deb --profile deb --target ${{ env.TARGET }} - version="${{ needs.create-release.outputs.version }}" - echo "DEB_DIR=target/${{ env.TARGET }}/debian" >> $GITHUB_ENV - echo "DEB_NAME=afrim-wish-$version-1-amd64.deb" >> $GITHUB_ENV - - - name: Create sha256 sum of deb file - shell: bash - run: | - cd "$DEB_DIR" - sum="$DEB_NAME.sha256" - shasum -a 256 "$DEB_NAME" > "$sum" - echo "SUM=$sum" >> $GITHUB_ENV - - - name: Upload release archive - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - shell: bash - run: | - cd "$DEB_DIR" - version="${{ needs.create-release.outputs.version }}" - gh release upload "$version" "$DEB_NAME" "$SUM" diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 0000000..72f0b8d --- /dev/null +++ b/Cross.toml @@ -0,0 +1,5 @@ +[build] +pre-build = [ + # additional commands to run prior to building the package + "apt-get update && apt-get install --no-install-recommends -y libxtst-dev libevdev-dev libxdo-dev xorg-dev libx11-dev", +] diff --git a/ci/ubuntu-install-packages b/ci/ubuntu-install-packages deleted file mode 100644 index cb6d119..0000000 --- a/ci/ubuntu-install-packages +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# This script gets run in weird environments that have been stripped of just -# about every inessential thing. In order to keep this script versatile, we -# just install 'sudo' and use it like normal if it doesn't exist. If it doesn't -# exist, we assume we're root. (Otherwise we ain't doing much of anything -# anyway.) -if ! command -V sudo; then - apt-get update - apt-get install -y --no-install-recommends sudo -fi -sudo apt-get update -sudo apt-get install -y --no-install-recommends \ - libxtst-dev libevdev-dev libxdo-dev