name: Packaging on: push: tags: - 'v*.*.*' jobs: publish: name: Publish on ${{ matrix.os }} for ${{ matrix.target }} runs-on: ${{ matrix.os }} strategy: matrix: target: - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl - x86_64-apple-darwin include: - os: ubuntu-18.04 target: x86_64-unknown-linux-gnu client_artifact_name: target/x86_64-unknown-linux-gnu/release/mosaic client_release_name: mosaic-x86_64-unknown-linux-gnu strip: true - os: ubuntu-18.04 target: x86_64-unknown-linux-musl client_artifact_name: target/x86_64-unknown-linux-musl/release/mosaic client_release_name: mosaic-x86_64-unknown-linux-musl strip: true - os: macos-latest target: x86_64-apple-darwin client_artifact_name: target/x86_64-apple-darwin/release/mosaic client_release_name: mosaic-x86_64-macos-darwin strip: true steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable target: ${{ matrix.target }} override: true - name: Install musl if: matrix.target == 'x86_64-unknown-linux-musl' run: | sudo apt update sudo apt install musl-tools -y - name: cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --locked --target=${{ matrix.target }} - name: Compress client uses: svenstaro/upx-action@v2 with: file: ${{ matrix.client_artifact_name }} args: --lzma strip: ${{ matrix.strip }} # TODO? # - name: Get CHANGELOG.md entry # id: changelog_reader # uses: mindsers/changelog-reader-action@v1.2.0 # with: # path: ./CHANGELOG.md - name: Upload client binaries to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ${{ matrix.client_artifact_name }} asset_name: ${{ matrix.client_release_name }} tag: ${{ github.ref }} deb-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Deb Build uses: ebbflow-io/cargo-deb-amd64-ubuntu@1.0 - name: Upload deb to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/x86_64-unknown-linux-musl/debian/mosaic* asset_name: mosaic-amd64.deb tag: ${{ github.ref }} file_glob: true