baseic 0.1.1

A simple numeric conversion tool
Documentation
name: Make a release and publish

on:
  push:
    tags: ["v*"]

jobs:
  test:
    name: Preliminary test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - name: Test with cargo
        run: cargo test

  publish_crates_io:
    name: "Publish to crates.io"
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - run: cargo publish
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}

  make_release:
    name: Create release
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Create release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref_name }}
          release_name: Release ${{ github.ref_name }}
          draft: true
          prerelease: true
    outputs:
      upload_url: ${{ steps.create_release.outputs.upload_url }}

  build-x86_64-unknown-linux-gnu:
    name: Build binary for x86_64-unknown-linux-gnu and add it to release
    needs: make_release
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Get stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: x86_64-unknown-linux-gnu
          override: true
      - name: Test with cargo
        run: cargo test
      - name: Build x86_64-unknown-linux-gnu binary
        run: |
          cargo build --release --verbose
          (cd target/release && mkdir baseic-$VERSION-x86_64-unknown-linux-gnu && mv baseic baseic-$VERSION-x86_64-unknown-linux-gnu/)
          tar -C target/release -czvf baseic-$VERSION-x86_64-unknown-linux-gnu.tar.gz baseic-$VERSION-x86_64-unknown-linux-gnu/
        env:
          VERSION: ${{ github.ref_name }}
      - name: Upload x86_64-unknown-linux-gnu binary to release assets
        uses: actions/upload-release-asset@v1.0.1
        env:
          GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}
        with:
          upload_url: ${{ needs.make_release.outputs.upload_url }}
          asset_path: baseic-${{github.ref_name}}-x86_64-unknown-linux-gnu.tar.gz
          asset_name: baseic-${{github.ref_name}}-x86_64-unknown-linux-gnu.tar.gz
          asset_content_type: application/gzip

  publish_aur:
    name: Publish package to Arch User Repository
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install envsubst
        run: |
          sudo apt update 
          sudo apt install -y gettext-base
      - name: Generate PKGBUILD for baseic
        run: |
          export PKGVER=${VERSION:1}
          mkdir pkgbuild && mkdir pkgbuild/baseic
          cat template/PKGBUILD-baseic | envsubst '$PKGVER' > pkgbuild/baseic/PKGBUILD
          cat pkgbuild/baseic/PKGBUILD
        env:
          VERSION: ${{ github.ref_name }}
      - name: Publish baseic to the AUR
        uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
        with:
          pkgname: baseic
          pkgbuild: ./pkgbuild/baseic/PKGBUILD
          commit_username: ${{ secrets.AUR_USERNAME }}
          commit_email: ${{ secrets.AUR_EMAIL }}
          ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
          commit_message: ${{ github.ref_name }}
          force_push: 'true'
          test: 'true'
          updpkgsums: 'true'


  # TODO: currently does not work because of linking issue
  # build-aarch64-unknown-linux-gnu:
  #   name: Build binary for aarch64-unknown-linux-gnu and add it to release
  #   needs: make_release
  #   runs-on: ubuntu-latest
  #   steps:
  #     - uses: actions/checkout@v3
  #     - name: Get stable toolchain
  #       uses: actions-rs/toolchain@v1
  #       with:
  #         toolchain: stable
  #         target: aarch64-unknown-linux-gnu
  #         override: true
  #     - name: Test with cargo
  #       run: cargo test
  #     - name: Build aarch64-unknown-linux-gnu binary
  #       run: |
  #         cargo build --release --verbose --target aarch64-unknown-linux-gnu
  #         (cd target/release && mkdir baseic-$VERSION-aarch64-unknown-linux-gnu && mv baseic baseic-$VERSION-aarch64-unknown-linux-gnu/)
  #         tar -C target/release -czvf baseic-$VERSION-aarch64-unknown-linux-gnu.tar.gz baseic-$VERSION-aarch64-unknown-linux-gnu/
  #       env:
  #         VERSION: ${{ github.ref_name }}
  #     - name: Upload aarch64-unknown-linux-gnu binary to release assets
  #       uses: actions/upload-release-asset@v1.0.1
  #       env:
  #         GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}
  #       with:
  #         upload_url: ${{ needs.make_release.outputs.upload_url }}
  #         asset_path: baseic-${{github.ref_name}}-aarch64-unknown-linux-gnu.tar.gz
  #         asset_name: baseic-${{github.ref_name}}-aarch64-unknown-linux-gnu.tar.gz
  #         asset_content_type: application/gzip