From ba9f5c62a39c7f587bee9483a9c086c3f28187cf Mon Sep 17 00:00:00 2001 From: Brady Fomegne Date: Sun, 14 Apr 2024 13:57:02 +0100 Subject: [PATCH] ci: fix auto release (#51) --- .github/workflows/release.yml | 160 +++------------------------------- Cross.toml | 8 ++ ci/ubuntu-install-packages | 14 --- 3 files changed, 22 insertions(+), 160 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..ca77e30 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 }} @@ -59,8 +59,6 @@ jobs: CROSS_VERSION: v0.2.5 # Emit backtraces on panics. RUST_BACKTRACE: 1 - # Build static releases with PCRE2. - PCRE2_SYS_STATIC: 1 strategy: fail-fast: false matrix: @@ -68,77 +66,21 @@ jobs: - build: linux os: ubuntu-latest rust: nightly - target: x86_64-unknown-linux-musl - strip: x86_64-linux-musl-strip - - build: stable-x86 - os: ubuntu-latest - rust: stable - target: i686-unknown-linux-gnu + target: x86_64-unknown-linux-gnu strip: x86_64-linux-gnu-strip - qemu: i386 - - build: stable-aarch64 - os: ubuntu-latest - rust: stable - target: aarch64-unknown-linux-gnu - strip: aarch64-linux-gnu-strip - qemu: qemu-aarch64 - - build: stable-arm-gnueabihf - os: ubuntu-latest - rust: stable - target: armv7-unknown-linux-gnueabihf - strip: arm-linux-gnueabihf-strip - qemu: qemu-arm - - build: stable-arm-musleabihf - os: ubuntu-latest - rust: stable - target: armv7-unknown-linux-musleabihf - strip: arm-linux-musleabihf-strip - qemu: qemu-arm - - build: stable-arm-musleabi - os: ubuntu-latest - rust: stable - target: armv7-unknown-linux-musleabi - strip: arm-linux-musleabi-strip - qemu: qemu-arm - - build: stable-powerpc64 - os: ubuntu-latest - rust: stable - target: powerpc64-unknown-linux-gnu - strip: powerpc64-linux-gnu-strip - qemu: qemu-ppc64 - - build: stable-s390x - os: ubuntu-latest - rust: stable - target: s390x-unknown-linux-gnu - strip: s390x-linux-gnu-strip - qemu: qemu-s390x - - build: macos - os: macos-latest - rust: nightly - target: x86_64-apple-darwin - - build: win-msvc - os: windows-latest - rust: nightly - target: x86_64-pc-windows-msvc - - build: win-gnu - os: windows-latest - rust: nightly-x86_64-gnu - target: x86_64-pc-windows-gnu - - build: win32-msvc - os: windows-latest - rust: nightly - target: i686-pc-windows-msvc +# - build: macos +# os: macos-latest +# rust: nightly +# target: x86_64-apple-darwin +# - build: win-msvc +# os: windows-latest +# rust: nightly +# target: x86_64-pc-windows-msvc steps: - 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 +150,9 @@ 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 {LICENSE,demo.gif,CHANGELOG.md} "$ARCHIVE"/ - name: Build archive (Windows) shell: bash @@ -238,76 +179,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..3e48feb --- /dev/null +++ b/Cross.toml @@ -0,0 +1,8 @@ +[build] +pre-build = [ + # additional commands to run prior to building the package + "dpkg --add-architecture $CROSS_DEB_ARCH", + "apt-get update", + "apt-get install -y pkg-config libxdo-dev xorg-dev" +] +env = { passthrough = ["PKG_CONFIG_ALLOW_CROSS=1"] } 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