chore: version 0.9.5 #100
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |