< 返回版块

vSylva 发表于 2024-03-14 11:04

评论区

写评论
作者 vSylva 2024-03-21 01:17

👍

--
👇
苦瓜小仔: cargo-dist 挺好用,不用自己写 GH action。

作者 vSylva 2024-03-21 01:17

👍

--
👇
lsk569937453:

name: 'release'

on:
  push:
    tags:
      - '*'

permissions:
  contents: write
  packages: write
jobs:
  release:
    strategy:
      matrix:
        platform:
          - release_for: linux-x86_64
            os: ubuntu-20.04
            target: x86_64-unknown-linux-gnu
            bin: echo-server
            name: echo-server-x86_64-unknown-linux-gnu
            command: build

          - release_for: Windows-x86_64
            os: windows-latest
            target: x86_64-pc-windows-msvc
            bin: echo-server.exe
            name: echo-server-Windows-x86_64.exe
            command: build

          - release_for: macOS-x86_64
            os: macOS-latest
            target: x86_64-apple-darwin
            bin: echo-server
            name: echo-server-Darwin-x86_64
            command: build
          - release_for: macOS-arm64
            os: macOS-latest
            target: aarch64-apple-darwin	
            bin: echo-server
            name: echo-server-aarch64-apple-darwin
            command: build



    runs-on: ${{ matrix.platform.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Build binary
        uses: houseabsolute/actions-rust-cross@v0
        with:
          command: ${{ matrix.platform.command }}
          target: ${{ matrix.platform.target }}
          args: "--release"
          strip: true
      - name: 'Login to GitHub Container Registry'
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{github.actor}}
          password: ${{secrets.GITHUB_TOKEN}}
      - name: Build the docker image
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        run: |-
          cp target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} ./docker/echo-server
          cd docker/
          docker build -t ghcr.io/lsk569937453/echo-server:${{ github.ref_name }} .
          docker push ghcr.io/lsk569937453/echo-server:${{ github.ref_name }}

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }}
          asset_name: ${{ matrix.platform.name }}
          tag: ${{ github.ref }}

我的这个是基于cross的跨平台编译的github actions。

苦瓜小仔 2024-03-14 14:46

cargo-dist 挺好用,不用自己写 GH action。

lsk569937453 2024-03-14 11:29

项目是这个:https://github.com/lsk569937453/echo-server 可以点release看效果,顺便将docker镜像也发布到了github.

--
👇
lsk569937453:

name: 'release'

on:
  push:
    tags:
      - '*'

permissions:
  contents: write
  packages: write
jobs:
  release:
    strategy:
      matrix:
        platform:
          - release_for: linux-x86_64
            os: ubuntu-20.04
            target: x86_64-unknown-linux-gnu
            bin: echo-server
            name: echo-server-x86_64-unknown-linux-gnu
            command: build

          - release_for: Windows-x86_64
            os: windows-latest
            target: x86_64-pc-windows-msvc
            bin: echo-server.exe
            name: echo-server-Windows-x86_64.exe
            command: build

          - release_for: macOS-x86_64
            os: macOS-latest
            target: x86_64-apple-darwin
            bin: echo-server
            name: echo-server-Darwin-x86_64
            command: build
          - release_for: macOS-arm64
            os: macOS-latest
            target: aarch64-apple-darwin	
            bin: echo-server
            name: echo-server-aarch64-apple-darwin
            command: build



    runs-on: ${{ matrix.platform.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Build binary
        uses: houseabsolute/actions-rust-cross@v0
        with:
          command: ${{ matrix.platform.command }}
          target: ${{ matrix.platform.target }}
          args: "--release"
          strip: true
      - name: 'Login to GitHub Container Registry'
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{github.actor}}
          password: ${{secrets.GITHUB_TOKEN}}
      - name: Build the docker image
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        run: |-
          cp target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} ./docker/echo-server
          cd docker/
          docker build -t ghcr.io/lsk569937453/echo-server:${{ github.ref_name }} .
          docker push ghcr.io/lsk569937453/echo-server:${{ github.ref_name }}

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }}
          asset_name: ${{ matrix.platform.name }}
          tag: ${{ github.ref }}

我的这个是基于cross的跨平台编译的github actions。

lsk569937453 2024-03-14 11:26
name: 'release'

on:
  push:
    tags:
      - '*'

permissions:
  contents: write
  packages: write
jobs:
  release:
    strategy:
      matrix:
        platform:
          - release_for: linux-x86_64
            os: ubuntu-20.04
            target: x86_64-unknown-linux-gnu
            bin: echo-server
            name: echo-server-x86_64-unknown-linux-gnu
            command: build

          - release_for: Windows-x86_64
            os: windows-latest
            target: x86_64-pc-windows-msvc
            bin: echo-server.exe
            name: echo-server-Windows-x86_64.exe
            command: build

          - release_for: macOS-x86_64
            os: macOS-latest
            target: x86_64-apple-darwin
            bin: echo-server
            name: echo-server-Darwin-x86_64
            command: build
          - release_for: macOS-arm64
            os: macOS-latest
            target: aarch64-apple-darwin	
            bin: echo-server
            name: echo-server-aarch64-apple-darwin
            command: build



    runs-on: ${{ matrix.platform.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Build binary
        uses: houseabsolute/actions-rust-cross@v0
        with:
          command: ${{ matrix.platform.command }}
          target: ${{ matrix.platform.target }}
          args: "--release"
          strip: true
      - name: 'Login to GitHub Container Registry'
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        uses: docker/login-action@v1
        with:
          registry: ghcr.io
          username: ${{github.actor}}
          password: ${{secrets.GITHUB_TOKEN}}
      - name: Build the docker image
        if: matrix.platform.target == 'x86_64-unknown-linux-gnu'
        run: |-
          cp target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} ./docker/echo-server
          cd docker/
          docker build -t ghcr.io/lsk569937453/echo-server:${{ github.ref_name }} .
          docker push ghcr.io/lsk569937453/echo-server:${{ github.ref_name }}

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }}
          asset_name: ${{ matrix.platform.name }}
          tag: ${{ github.ref }}

我的这个是基于cross的跨平台编译的github actions。

1 共 5 条评论, 1 页