From e05d6fc8bf0aa896004b1a053898e9dac16cb7bb Mon Sep 17 00:00:00 2001 From: dagou Date: Mon, 9 Sep 2024 14:51:18 +0800 Subject: [PATCH] action --- .github/workflows/release.yaml | 238 ++++++++++++++++----------------- Cargo.toml | 9 ++ 2 files changed, 127 insertions(+), 120 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7c4341d..a2dfa79 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -90,19 +90,6 @@ jobs: command: build args: --release --locked --target ${{ matrix.target }} - - name: Strip release binary (linux and macos) - if: matrix.build == 'x86_64-linux' || matrix.build == 'x86_64-macos' - run: strip "target/${{ matrix.target }}/release/$BIN_NAME" - - - name: Strip release binary (arm) - if: matrix.build == 'aarch64-linux' - run: | - docker run --rm -v \ - "$PWD/target:/target:Z" \ - rustembedded/cross:${{ matrix.target }} \ - aarch64-linux-gnu-strip \ - /target/${{ matrix.target }}/release/$BIN_NAME - - name: Build archive shell: bash run: | @@ -113,114 +100,125 @@ jobs: cp "target/${{ matrix.target }}/release/$BIN_NAME" "dist/" fi - - uses: actions/upload-artifact@v2.2.4 - with: - name: bins-${{ matrix.build }} - path: dist - - publish: - name: Publish - needs: [dist] - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v2 - with: - submodules: false - - - uses: actions/download-artifact@v4 - with: - path: dist - run: ls -al bins-* - - - name: Calculate tag name + - name: Upload Release Asset run: | - name=dev - if [[ $GITHUB_REF == refs/tags/v* ]]; then - name=${GITHUB_REF:10} + if [ "${{ matrix.os }}" = "windows-2019" ]; then + ASSET_NAME="${{ env.BIN_NAME }}.exe" + else + ASSET_NAME="${{ env.BIN_NAME }}" fi - echo ::set-output name=val::$name - echo TAG=$name >> $GITHUB_ENV - id: tagname - - - name: Build archive + gh release upload ${{ github.ref_name }} \ + "./dist/$ASSET_NAME" \ + --clobber + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash - run: | - set -ex - - rm -rf tmp - mkdir tmp - mkdir dist - for dir in bins-* ; do - platform=${dir#"bins-"} - unset exe - if [[ $platform =~ "windows" ]]; then - exe=".exe" - fi - pkgname=$PROJECT_NAME-$TAG-$platform - mkdir tmp/$pkgname - # cp LICENSE README.md tmp/$pkgname - mv bins-$platform/$BIN_NAME$exe tmp/$pkgname - chmod +x tmp/$pkgname/$BIN_NAME$exe - - if [ "$exe" = "" ]; then - tar cJf dist/$pkgname.tar.xz -C tmp $pkgname - else - (cd tmp && 7z a -r ../dist/$pkgname.zip $pkgname) - fi - done - - - name: Upload binaries to release - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: dist/* - file_glob: true - tag: ${{ steps.tagname.outputs.val }} - overwrite: true - - - name: Extract version - id: extract-version - run: | - printf "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}" - - # - uses: mislav/bump-homebrew-formula-action@v1 - # with: - # formula-path: ${{env.PROJECT_NAME}}.rb - # homebrew-tap: ${{ env.BREW_TAP }} - # download-url: "https://github.com/${{ env.REPO_NAME }}/releases/download/${{ steps.extract-version.outputs.tag-name }}/${{env.PROJECT_NAME}}-${{ steps.extract-version.outputs.tag-name }}-x86_64-macos.tar.xz" - # commit-message: updating formula for ${{ env.PROJECT_NAME }} - # env: - # COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }} - # - # you can use this initial file in your homebrew-tap if you don't have an initial formula: - # .rb - # - # class < Formula - # desc "A test formula" - # homepage "http://www.example.com" - # url "-----" - # version "-----" - # sha256 "-----" - - # def install - # bin.install "" - # end - # end - - - # Uncomment this section if you want to release your package to crates.io - # Before publishing, make sure you have filled out the following fields: - # license or license-file, description, homepage, documentation, repository, readme. - # Read more: https://doc.rust-lang.org/cargo/reference/publishing.html - - # - name: Install ${{ matrix.rust }} toolchain - # uses: actions-rs/toolchain@v1 - # with: - # profile: minimal - # toolchain: ${{ matrix.rust }} - # target: ${{ matrix.target }} - # - run: cargo publish --token ${CRATES_TOKEN} - # env: - # CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} + # - uses: actions/upload-artifact@v2.2.4 + # with: + # # name: bins-${{ matrix.build }} + # path: dist + + # publish: + # name: Publish + # needs: [dist] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout sources + # uses: actions/checkout@v2 + # with: + # submodules: false + + # - uses: actions/download-artifact@v4 + + # - name: Calculate tag name + # run: | + # name=dev + # if [[ $GITHUB_REF == refs/tags/v* ]]; then + # name=${GITHUB_REF:10} + # fi + # echo "val=$name" >> $GITHUB_OUTPUT + # echo "TAG=$name" >> $GITHUB_ENV + # id: tagname + + # - name: Build archive + # shell: bash + # run: | + # set -ex + + # rm -rf tmp + # mkdir tmp + # mkdir dist + + # for dir in bins-* ; do + # platform=${dir#"bins-"} + # unset exe + # if [[ $platform =~ "windows" ]]; then + # exe=".exe" + # fi + # pkgname=$PROJECT_NAME-$TAG-$platform + # mkdir tmp/$pkgname + # # cp LICENSE README.md tmp/$pkgname + # mv bins-$platform/$BIN_NAME$exe tmp/$pkgname + # chmod +x tmp/$pkgname/$BIN_NAME$exe + + # if [ "$exe" = "" ]; then + # tar cJf dist/$pkgname.tar.xz -C tmp $pkgname + # else + # (cd tmp && 7z a -r ../dist/$pkgname.zip $pkgname) + # fi + # done + + # - name: Upload binaries to release + # uses: svenstaro/upload-release-action@v2 + # with: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # file: dist/* + # file_glob: true + # tag: ${{ steps.tagname.outputs.val }} + # overwrite: true + + # - name: Extract version + # id: extract-version + # run: | + # echo "tag-name=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + + # # - uses: mislav/bump-homebrew-formula-action@v1 + # # with: + # # formula-path: ${{env.PROJECT_NAME}}.rb + # # homebrew-tap: ${{ env.BREW_TAP }} + # # download-url: "https://github.com/${{ env.REPO_NAME }}/releases/download/${{ steps.extract-version.outputs.tag-name }}/${{env.PROJECT_NAME}}-${{ steps.extract-version.outputs.tag-name }}-x86_64-macos.tar.xz" + # # commit-message: updating formula for ${{ env.PROJECT_NAME }} + # # env: + # # COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }} + # # + # # you can use this initial file in your homebrew-tap if you don't have an initial formula: + # # .rb + # # + # # class < Formula + # # desc "A test formula" + # # homepage "http://www.example.com" + # # url "-----" + # # version "-----" + # # sha256 "-----" + + # # def install + # # bin.install "" + # # end + # # end + + + # # Uncomment this section if you want to release your package to crates.io + # # Before publishing, make sure you have filled out the following fields: + # # license or license-file, description, homepage, documentation, repository, readme. + # # Read more: https://doc.rust-lang.org/cargo/reference/publishing.html + + # # - name: Install ${{ matrix.rust }} toolchain + # # uses: actions-rs/toolchain@v1 + # # with: + # # profile: minimal + # # toolchain: ${{ matrix.rust }} + # # target: ${{ matrix.target }} + # # - run: cargo publish --token ${CRATES_TOKEN} + # # env: + # # CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }} diff --git a/Cargo.toml b/Cargo.toml index 78858e4..7ddbaa0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,3 +23,12 @@ gtdb_tree = "0.1.9" [[bin]] name = "clade" path = "src/main.rs" + + +[profile.release] +lto = true +opt-level = "s" # 或者 "z" +debug-assertions = false +# panic = 'abort' +codegen-units = 1 # Compile crates one after another so the compiler can optimize better +strip = true # Remove debug symbols