mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-14 03:06:54 +02:00
If the PR is from an external repo, the action won't run without approval. right now we can't run the actions on external PRs.
126 lines
3.4 KiB
YAML
126 lines
3.4 KiB
YAML
on:
|
|
pull_request:
|
|
push:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build_ubuntu:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: gitconfig
|
|
run: |
|
|
git config --global core.autocrlf input
|
|
# git config --global core.eol lf
|
|
- name: checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: stable
|
|
targets: x86_64-unknown-linux-gnu
|
|
components: rustfmt, clippy
|
|
|
|
- name: Set up cargo cache
|
|
uses: Swatinem/rust-cache@v2
|
|
continue-on-error: false
|
|
with:
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
|
shared-key: ${{ runner.os }}-cargo-
|
|
workspaces: |
|
|
rustybits/
|
|
|
|
- name: make
|
|
run: make
|
|
- name: selftest
|
|
run: |
|
|
make selftest
|
|
./zerotier-selftest
|
|
- name: 'Tar files' # keeps permissions (execute)
|
|
run: tar -cvf zerotier-one.tar zerotier-one
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: zerotier-one-ubuntu-x64
|
|
path: zerotier-one.tar
|
|
retention-days: 7
|
|
|
|
build_macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- name: gitconfig
|
|
run: |
|
|
git config --global core.autocrlf input
|
|
# git config --global core.eol lf
|
|
- name: checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Rust aarch64
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: stable
|
|
target: aarch64-apple-darwin
|
|
components: rustfmt, clippy
|
|
- name: Install Rust x86_64
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: stable
|
|
target: x86_64-apple-darwin
|
|
components: rustfmt, clippy
|
|
- name: Set up cargo cache
|
|
uses: Swatinem/rust-cache@v2
|
|
continue-on-error: false
|
|
with:
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
|
shared-key: ${{ runner.os }}-cargo-
|
|
workspaces: |
|
|
rustybits/
|
|
- name: make
|
|
run: make
|
|
- name: selftest
|
|
run: |
|
|
make selftest
|
|
./zerotier-selftest
|
|
- name: 'Tar files' # keeps permissions (execute)
|
|
run: tar -cvf zerotier-one.tar zerotier-one
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: zerotier-one-mac
|
|
path: zerotier-one.tar
|
|
retention-days: 7
|
|
|
|
|
|
build_windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: gitconfig
|
|
run: |
|
|
git config --global core.autocrlf true
|
|
# git config --global core.eol lf
|
|
- name: checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
toolchain: stable
|
|
target: aarch64-apple-darwin
|
|
components: rustfmt, clippy
|
|
- name: Set up cargo cache
|
|
uses: Swatinem/rust-cache@v2
|
|
continue-on-error: false
|
|
with:
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
|
shared-key: ${{ runner.os }}-cargo-
|
|
workspaces: |
|
|
rustybits/
|
|
|
|
- name: setup msbuild
|
|
uses: microsoft/setup-msbuild@v2
|
|
- name: msbuild
|
|
run: |
|
|
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: zerotier-one-windows
|
|
path: windows/Build
|
|
retention-days: 7
|