Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add new workflow to cross-compile wws #23

Merged
merged 18 commits into from
Nov 14, 2022
Merged
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
31431d2
feat: add new workflow to cross-compile wws
Angelmmiguel Nov 10, 2022
3f081ad
feat: install missing components with rustup
Angelmmiguel Nov 10, 2022
0f7cdb9
fix: configure the release action trigger to run on tags
Angelmmiguel Nov 10, 2022
87f8b56
fix: install target platforms properly with rustup
Angelmmiguel Nov 10, 2022
357e082
fix: set the proper matrix to build all desired flavors
Angelmmiguel Nov 10, 2022
f733afa
fix: skip windows on aarch64 due to the lack of cross official images
Angelmmiguel Nov 10, 2022
161f2b3
fix: install musl-tools for linux builds
Angelmmiguel Nov 10, 2022
b1f4780
fix: remove quotes when using values in if conditional
Angelmmiguel Nov 10, 2022
1db2827
fix: set the right format for conditionals with strings in the releas…
Angelmmiguel Nov 10, 2022
cf894f1
fix: use sudo with apt-get
Angelmmiguel Nov 10, 2022
f28bc28
fix: ensure we are using bash on windows too
Angelmmiguel Nov 10, 2022
d138c71
fix: create flat tar.gz files. Set the right file name
Angelmmiguel Nov 10, 2022
e530722
feat: enables the windows arm64 build
Angelmmiguel Nov 10, 2022
669c15e
fix: set the -C flag properly when compressing the output files
Angelmmiguel Nov 11, 2022
f6eb618
chore: try to avoid using cross if not required
Angelmmiguel Nov 11, 2022
ea280ea
fix: continue using cross for linux aarch64
Angelmmiguel Nov 11, 2022
f5eb42e
feat: run only when tags are pushed and rename the file
Angelmmiguel Nov 11, 2022
586b01a
fix: remove the artifact retention time that was used for testing
Angelmmiguel Nov 14, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions .github/workflows/artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Build artifacts

on:
push:
branches: [ main ]
tags:
- "[0-9]+.[0-9]+.[0-9]+"
Angelmmiguel marked this conversation as resolved.
Show resolved Hide resolved
# TODO: uncomment for testing. This will run by default only when a new tag is created
# pull_request:
# branches: [ main ]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Caching
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
Angelmmiguel marked this conversation as resolved.
Show resolved Hide resolved
- name: Test
run: cargo test
build:
strategy:
matrix:
build: [linux, windows, macos]
arch: [x86_64, aarch64]
include:
- build: linux
arch: x86_64
os: ubuntu-latest
platform: unknown-linux-musl
cross: false
name: linux-musl
- build: linux
arch: aarch64
os: ubuntu-latest
platform: unknown-linux-musl
cross: true
name: linux-musl
- build: windows
arch: x86_64
os: windows-latest
platform: pc-windows-msvc
cross: false
name: pc-windows
- build: windows
arch: aarch64
os: windows-latest
platform: pc-windows-msvc
cross: false
name: pc-windows
- build: macos
arch: x86_64
os: macos-latest
platform: apple-darwin
cross: false
name: macos-darwin
- build: macos
arch: aarch64
os: macos-latest
platform: apple-darwin
cross: false
name: macos-darwin
runs-on: ${{ matrix.os }}
env:
# We use cross for arm builds
CARGO: cargo
steps:
- uses: actions/checkout@v3
- name: Install cross
if: matrix.cross == true
run: |
cargo install cross
echo "CARGO=cross" >> $GITHUB_ENV
- name: Install target
if: matrix.cross == false
run: rustup target add ${{ matrix.arch }}-${{ matrix.platform }}
- name: Install deps
if: ${{ matrix.build == 'linux' }}
run: |
sudo apt-get update
sudo apt-get install musl-tools
- name: Build
run: ${{env.CARGO}} build --verbose --release --target=${{ matrix.arch }}-${{ matrix.platform }}
- name: Tarball
shell: bash
run: |
mkdir out
cp {README.md,LICENSE} out

if [ "${{ matrix.os }}" = "windows-latest" ]; then
cp "target/${{ matrix.arch }}-${{ matrix.platform }}/release/wws.exe" ./out
else
cp "target/${{ matrix.arch }}-${{ matrix.platform }}/release/wws" ./out
fi

tar czvf "wws-${{ matrix.name }}-${{ matrix.arch }}.tar.gz" -C ./out .
echo "TARBALL=wws-${{ matrix.name }}-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: wws-${{ matrix.name }}-${{ matrix.arch }}.tar.gz
path: ${{ env.TARBALL }}