Skip to content

chore: version 0.9.5 #100

chore: version 0.9.5

chore: version 0.9.5 #100

Workflow file for this run

name: "publish"
on:
push:
tags: ["v[0-9]+.[0-9]+.[0-9]+*"]
# branches: []
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
CARGO_TERM_COLOR: always
jobs:
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.82.0
- name: build-web
run: make build-web
- name: Install target
run: |
brew install protobuf
rustup update
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
- name: release
run: |
cargo build --release --target=aarch64-apple-darwin
mv target/aarch64-apple-darwin/release/pingap ./pingap-darwin-aarch64
tar -czvf pingap-darwin-aarch64.tar.gz pingap-darwin-aarch64
cargo build --release --target=aarch64-apple-darwin --features=full
mv target/aarch64-apple-darwin/release/pingap ./pingap-darwin-aarch64-full
tar -czvf pingap-darwin-aarch64-full.tar.gz pingap-darwin-aarch64-full
cargo build --release --target=x86_64-apple-darwin
mv target/x86_64-apple-darwin/release/pingap ./pingap-darwin-x86
tar -czvf pingap-darwin-x86.tar.gz pingap-darwin-x86
cargo build --release --target=x86_64-apple-darwin --features=full
mv target/x86_64-apple-darwin/release/pingap ./pingap-darwin-x86-full
tar -czvf pingap-darwin-x86-full.tar.gz pingap-darwin-x86-full
ls -lh pingap*.gz
./.github/workflows/upload_asset.sh ./pingap-darwin-aarch64.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-darwin-aarch64-full.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-darwin-x86.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-darwin-x86-full.tar.gz $GITHUB_TOKEN
linux-musl-x86:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
- name: build-web
run: make build-web
- name: release
uses: addnab/docker-run-action@v3
with:
image: messense/rust-musl-cross:x86_64-musl
options: -v ${{ github.workspace }}:/home/rust/src
run: |
apt-get update
apt-get install protobuf-compiler -y
make release-full
mv target/x86_64-unknown-linux-musl/release/pingap ./pingap-linux-musl-x86-full
make release
mv target/x86_64-unknown-linux-musl/release/pingap ./pingap-linux-musl-x86
- name: Upload Assets
run: |
tar -czvf pingap-linux-musl-x86.tar.gz pingap-linux-musl-x86
tar -czvf pingap-linux-musl-x86-full.tar.gz pingap-linux-musl-x86-full
ls -lh pingap*.gz
./.github/workflows/upload_asset.sh ./pingap-linux-musl-x86.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-linux-musl-x86-full.tar.gz $GITHUB_TOKEN
linux-musl-aarch64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
- name: build-web
run: make build-web
- name: release
uses: addnab/docker-run-action@v3
with:
image: messense/rust-musl-cross:aarch64-musl
options: -v ${{ github.workspace }}:/home/rust/src
run: |
apt-get update
apt-get install protobuf-compiler -y
make release-all
mv target/aarch64-unknown-linux-musl/release/pingap ./pingap-linux-musl-aarch64-full
make release
mv target/aarch64-unknown-linux-musl/release/pingap ./pingap-linux-musl-aarch64
- name: Upload Assets
run: |
tar -czvf pingap-linux-musl-aarch64.tar.gz pingap-linux-musl-aarch64
tar -czvf pingap-linux-musl-aarch64-full.tar.gz pingap-linux-musl-aarch64-full
ls -lh pingap*.gz
./.github/workflows/upload_asset.sh ./pingap-linux-musl-aarch64.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-linux-musl-aarch64-full.tar.gz $GITHUB_TOKEN
linux-gnu-x86:
runs-on: ubuntu-20.04
timeout-minutes: 3600
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
- name: build-web
run: make build-web
- name: Install build dependencies
run: |
sudo apt update
sudo apt install -y cmake libclang-dev wget gnupg ca-certificates lsb-release --no-install-recommends protobuf-compiler
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.82.0
- name: Run cargo release
run: |
make release-all
ldd target/release/pingap
mv target/release/pingap ./pingap-linux-gnu-x86
mv target/release/pingap-full ./pingap-linux-gnu-x86-full
- name: Upload Assets
run: |
tar -czvf pingap-linux-gnu-x86.tar.gz ./pingap-linux-gnu-x86
tar -czvf pingap-linux-gnu-x86-full.tar.gz ./pingap-linux-gnu-x86-full
ls -lh pingap*.gz
./.github/workflows/upload_asset.sh ./pingap-linux-gnu-x86.tar.gz $GITHUB_TOKEN
./.github/workflows/upload_asset.sh ./pingap-linux-gnu-x86-full.tar.gz $GITHUB_TOKEN
linux-gnu-aarch64:
runs-on: ubuntu-20.04
timeout-minutes: 3600
steps:
- name: Change Swap Space
run: |
swapon --show=NAME | tail -n 1
df -lh
du -sh /usr/local/lib/android
sudo rm -rf /usr/local/lib/android
export SWAP_FILE=$(swapon --show=NAME | tail -n 1)
sudo swapoff $SWAP_FILE
sudo rm $SWAP_FILE
export SWAP_FILE=/swapfile
sudo fallocate -l 16G $SWAP_FILE
sudo chmod 600 $SWAP_FILE
sudo mkswap $SWAP_FILE
sudo swapon $SWAP_FILE
- name: Swap space report after modification
shell: bash
run: |
echo "Memory and swap:"
free -h
echo
swapon --show
df -lh
echo
- name: Checkout
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
vicanso/pingap
tags: |
type=raw,value=latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Build and export
uses: docker/build-push-action@v6
with:
platforms: linux/arm64
outputs: type=local,dest=/tmp/pingap
# TODO 后续调整为不再使用docker的形式构建再支持full版本
- name: Upload Assets
run: |
cp /tmp/pingap/usr/local/bin/pingap ./pingap-linux-gnu-aarch64-full
tar -czvf pingap-linux-gnu-aarch64-full.tar.gz ./pingap-linux-gnu-aarch64-full
ls -lh pingap*.gz
./.github/workflows/upload_asset.sh ./pingap-linux-gnu-aarch64-full.tar.gz $GITHUB_TOKEN
windows:
runs-on: windows-latest
name: ${{ matrix.target }}
env:
CFG_RELEASE_CHANNEL: ${{ matrix.cfg_release_channel }}
strategy:
# https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions#usage-limits
# There's a limit of 60 concurrent jobs across all repos in the rust-lang organization.
# In order to prevent overusing too much of that 60 limit, we throttle the
# number of rustfmt jobs that will run concurrently.
matrix:
target: [x86_64-pc-windows-msvc]
steps:
# The Windows runners have autocrlf enabled by default
# which causes failures for some of rustfmt's line-ending sensitive tests
- name: disable git eol translation
run: git config --global core.autocrlf false
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
- name: build-web
run: make build-web
# Run build
- name: Install Rustup using win.rustup.rs
run: |
# Disable the download progress bar which can cause perf issues
$ProgressPreference = "SilentlyContinue"
Invoke-WebRequest https://win.rustup.rs/ -OutFile rustup-init.exe
.\rustup-init.exe -y --default-host=x86_64-pc-windows-msvc --default-toolchain=none
del rustup-init.exe
rustup target add ${{ matrix.target }}
shell: powershell
- name: Add mingw64 to path for x86_64-gnu
run: echo "C:\msys64\mingw64\bin" >> $GITHUB_PATH
if: matrix.target == 'x86_64-pc-windows-gnu' && matrix.channel == 'nightly'
shell: bash
- name: Install Protoc
uses: arduino/setup-protoc@v3
- name: Set Perl environment variables
if: runner.os == 'Windows'
run: |
echo "PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
echo "OPENSSL_SRC_PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
# - name: Run cargo release
# shell: bash
# run: |
# cargo --version
# cargo build --release --features=full
# mv target/release/pingap.exe ./pingap-windows.exe
# - name: Zip
# shell: powershell
# run: |
# Compress-Archive -Path pingap-windows.exe -Destination pingap-windows.exe.zip
# - name: Upload asset
# shell: bash
# run: |
# ./.github/workflows/upload_asset.sh ./pingap-windows.exe.zip $GITHUB_TOKEN
docker:
runs-on: ubuntu-20.04
timeout-minutes: 3600
steps:
- name: Change Swap Space
run: |
swapon --show=NAME | tail -n 1
df -lh
du -sh /usr/local/lib/android
sudo rm -rf /usr/local/lib/android
export SWAP_FILE=$(swapon --show=NAME | tail -n 1)
sudo swapoff $SWAP_FILE
sudo rm $SWAP_FILE
export SWAP_FILE=/swapfile
sudo fallocate -l 16G $SWAP_FILE
sudo chmod 600 $SWAP_FILE
sudo mkswap $SWAP_FILE
sudo swapon $SWAP_FILE
- name: Swap space report after modification
shell: bash
run: |
echo "Memory and swap:"
free -h
echo
swapon --show
df -lh
echo
- name: Checkout
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
vicanso/pingap
tags: |
type=semver,pattern={{version}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
platforms: linux/amd64, linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
- name: Image digest
run: |
echo ${{ steps.docker_build.outputs.digest }}