edit build.yml #13
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: release | |
on: | |
push: | |
tags: | |
- v* | |
jobs: | |
build-bin-cross: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- mips-unknown-linux-musl | |
# - mipsel-unknown-linux-musl | |
- x86_64-unknown-linux-musl | |
# - i686-unknown-linux-musl | |
- aarch64-unknown-linux-musl | |
# - arm-unknown-linux-musleabi | |
# - armv7-unknown-linux-musleabihf | |
- x86_64-pc-windows-gnu | |
- x86_64-unknown-freebsd | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: install rust toolchain | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: stable | |
- name: install deps | |
run: | | |
sudo apt update && sudo apt install llvm-dev libclang-dev clang libssl-dev pkg-config protobuf-compiler make -y | |
- name: install cross | |
run: | | |
cargo install cross | |
- name: build | |
if: ${{ matrix.target != 'mips-unknown-linux-musl' }} | |
run: | | |
export CFG_COMMIT_HASH=`git log --pretty=format:'%h' -n 1` | |
export CFG_COMMIT_DATE=`git log --format="%ci" -n 1` | |
cross build --release --target ${{ matrix.target }} | |
- name: build | |
if: ${{ matrix.target == 'mips-unknown-linux-musl' }} | |
run: | | |
export CFG_COMMIT_HASH=`git log --pretty=format:'%h' -n 1` | |
export CFG_COMMIT_DATE=`git log --format="%ci" -n 1` | |
cross build --release --target ${{ matrix.target }} --features default-dot-openssl --no-default-features | |
- name: rename and compress artifacts | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
run: | | |
mv target/${{ matrix.target }}/release/yadns.exe yadns-${{ matrix.target }}.exe | |
- name: rename and compress artifacts | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
run: | | |
mv target/${{ matrix.target }}/release/yadns yadns-${{ matrix.target }} | |
- name: upload assets | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: yadns-${{ matrix.target }}.exe | |
path: yadns-${{ matrix.target }}.exe | |
- name: upload assets | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: yadns-${{ matrix.target }} | |
path: yadns-${{ matrix.target }} | |
build-bin-local: | |
strategy: | |
matrix: | |
target: | |
- x86_64-apple-darwin | |
- aarch64-apple-darwin | |
runs-on: macos-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: install rust toolchain | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: nightly | |
- name: install llvm | |
run: | | |
brew install llvm protobuf | |
- name: build | |
run: | | |
export CFG_COMMIT_HASH=`git log --pretty=format:'%h' -n 1` | |
export CFG_COMMIT_DATE=`git log --format="%ci" -n 1` | |
rustup target add ${{ matrix.target }} | |
SDKROOT=$(xcrun -sdk macosx13.0 --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx13.0 --show-sdk-platform-version) cargo build --release --target ${{ matrix.target }} | |
- name: rename and compress artifacts | |
run: | | |
mv target/${{ matrix.target }}/release/yadns yadns-${{ matrix.target }} | |
- name: upload assets | |
uses: actions/upload-artifact@v2 | |
with: | |
name: yadns-${{ matrix.target }} | |
path: yadns-${{ matrix.target }} | |
create-release: | |
needs: [build-bin-cross, build-bin-local] | |
runs-on: macos-latest | |
steps: | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: create upload url file | |
run: | | |
echo -n "${{ steps.create_release.outputs.upload_url }}" > upload_url.txt | |
- name: persist upload url | |
uses: actions/upload-artifact@v2 | |
with: | |
name: upload_url.txt | |
path: ./upload_url.txt | |
release-bin: | |
needs: [create-release] | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
target: | |
- x86_64-apple-darwin | |
- aarch64-apple-darwin | |
- mips-unknown-linux-musl | |
# - mipsel-unknown-linux-musl | |
- x86_64-unknown-linux-musl | |
# - i686-unknown-linux-musl | |
- aarch64-unknown-linux-musl | |
# - arm-unknown-linux-musleabi | |
# - armv7-unknown-linux-musleabihf | |
- x86_64-pc-windows-gnu | |
- x86_64-unknown-freebsd | |
steps: | |
- name: download upload url | |
uses: actions/download-artifact@v2 | |
with: | |
name: upload_url.txt | |
- name: get upload url | |
run: | | |
upload_url=`cat upload_url.txt` | |
echo "uploadurl=$upload_url" >> $GITHUB_ENV | |
- name: download asset | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: yadns-${{ matrix.target }} | |
- name: download asset | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: yadns-${{ matrix.target }}.exe | |
- name: zip artifacts | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
run: | | |
gzip yadns-${{ matrix.target }} | |
- name: zip artifacts | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
run: | | |
zip -9 yadns-${{ matrix.target }}.zip yadns-${{ matrix.target }}.exe | |
- name: upload asset | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./yadns-${{ matrix.target }}.gz | |
asset_name: yadns-${{ matrix.target }}.gz | |
asset_content_type: application/octet-stream | |
- name: upload asset | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./yadns-${{ matrix.target }}.zip | |
asset_name: yadns-${{ matrix.target }}.zip | |
asset_content_type: application/octet-stream |