Skip to content

Merge pull request #33 from l-monninger/main #54

Merge pull request #33 from l-monninger/main

Merge pull request #33 from l-monninger/main #54

Workflow file for this run

name: Binary Release
permissions: write-all
on:
push:
branches:
- main
# workflow_run:
# workflows: ["Cargo Test"]
# types:
# - completed
jobs:
prepare-release:
runs-on:
labels: movement-runner
outputs:
release_tag: ${{ steps.create_tag.outputs.tag }}
release_url: ${{ steps.create_release.outputs.upload_url }}
# if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Bump version and push tag
id: create_tag
uses: anothrNick/github-tag-action@1.64.0 # Don't use @master or @v1 unless you're happy to test the latest version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # if you don't want to set write permissions use a PAT token
WITH_V: false
DEFAULT_BUMP: patch
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ steps.create_tag.outputs.tag }}
release_name: Pre-release ${{ steps.create_tag.outputs.tag }}
body: Pre-release for ${{ steps.create_tag.outputs.tag }}
draft: false
prerelease: true
pre-release-x86_64-linux:
needs: prepare-release
runs-on:
labels: movement-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.69.0
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Install aarch64 target
run: rustup target add aarch64-unknown-linux-gnu
- name: Debugging Info
run: |
echo $PATH
gcc --version
ld --version
- name: Build binaries
run: |
cd "$GITHUB_WORKSPACE/m1"
cargo clean
RUSTFLAGS="--cfg tokio_unstable" cargo build --release
- name: Upload subnet
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/subnet
asset_name: subnet-x86_64-linux
asset_content_type: application/octet-stream
- name: Upload movement
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/movement
asset_name: movement-x86_64-linux
asset_content_type: application/octet-stream
pre-release-x86_64-mac:
if: false # not yet supported
needs: prepare-release
runs-on:
labels: movement-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Install oxcross
run: |
git clone https://github.com/tpoechtrager/osxcross
cd osxcross
wget -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz
mv MacOSX10.10.sdk.tar.xz tarballs/
UNATTENDED=yes OSX_VERSION_MIN=10.7 ./build.sh
- name: Set up Rust for Mac
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.69.0
target: x86_64-apple-darwin
- name: Build Mac binaries
run: |
cd "$GITHUB_WORKSPACE/m1"
cargo build --release --target x86_64-apple-darwin
- name: Upload subnet
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/subnet
asset_name: subnet-x86_64-mac
asset_content_type: application/octet-stream
- name: Upload movement
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/movement
asset_name: movement-x86_64-mac
asset_content_type: application/octet-stream
pre-release-aarch64-linux:
if: false # not yet supported
needs: prepare-release
runs-on:
labels: movement-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Set up dependencies for cross-compilation
run: apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Set up Rust for Linux ARM64
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.69.0
target: aarch64-unknown-linux-gnu
- name: Build Linux ARM64 binaries
run: |
cd "$GITHUB_WORKSPACE/m1"
cargo build --release --target aarch64-unknown-linux-gnu
- name: Upload subnet
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/subnet
asset_name: subnet-aarch64-linux
asset_content_type: application/octet-stream
- name: Upload movement
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/movement
asset_name: movement-aarch64-linux
asset_content_type: application/octet-stream
pre-release-aarch64-mac:
if: false # not yet supported
needs: prepare-release
runs-on:
labels: movement-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Install oxcross
run: |
git clone https://github.com/tpoechtrager/osxcross
cd osxcross
wget -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz
mv MacOSX10.10.sdk.tar.xz tarballs/
UNATTENDED=yes OSX_VERSION_MIN=10.7 ./build.sh
- name: Set up Rust for Mac ARM64
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.69.0
target: aarch64-apple-darwin
- name: Build Mac ARM64 binaries
run: |
cd "$GITHUB_WORKSPACE/m1"
cargo build --release --target aarch64-apple-darwin
- name: Upload subnet
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/subnet
asset_name: subnet-aarch64-mac
asset_content_type: application/octet-stream
- name: Upload movement
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/movement
asset_name: movement-aarch64-mac
asset_content_type: application/octet-stream
pre-release-x86_64-windows:
if: false # not yet supported
needs: prepare-release
runs-on:
labels: movement-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Add mingw
run: apt-get install -y mingw-w64
- name: Set up Rust for Windows
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.69.0
target: x86_64-pc-windows-gnu
- name: Build Windows binaries
run: |
cd "$GITHUB_WORKSPACE/m1"
cargo build --release --target x86_64-pc-windows-gnu
- name: Upload subnet
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/subnet
asset_name: subnet-x86_64-windows
asset_content_type: application/octet-stream
- name: Upload movement
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.prepare-release.outputs.release_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this reference for more info: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsid
asset_path: ./m1/target/release/movement
asset_name: movement-x86_64-windows
asset_content_type: application/octet-stream