Complete rewrite of the core system. #112
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: Rust | |
on: | |
push: | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
defaults: | |
run: | |
# necessary for windows | |
shell: bash | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Cargo cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cargo/registry | |
./target | |
key: test-cargo-registry | |
- name: List | |
run: find ./ | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
# a list of all the targets | |
include: | |
- TARGET: x86_64-unknown-linux-gnu | |
OS: ubuntu-latest | |
- TARGET: x86_64-apple-darwin | |
OS: macos-latest | |
- TARGET: x86_64-pc-windows-msvc | |
OS: windows-latest | |
# - TARGET: wasm32-unknown-unknown | |
# OS: ubuntu-latest | |
needs: test | |
runs-on: ${{ matrix.OS }} | |
env: | |
NAME: fluent | |
TARGET: ${{ matrix.TARGET }} | |
OS: ${{ matrix.OS }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Cargo cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cargo/registry | |
./target | |
key: build-cargo-registry-${{matrix.TARGET}} | |
- name: List | |
run: find ./ | |
- name: Install and configure dependencies | |
run: | | |
if [[ $OS =~ ^ubuntu.*$ ]]; then | |
sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf | |
fi | |
cat >>~/.cargo/config <<EOF | |
[target.aarch64-unknown-linux-gnu] | |
linker = "aarch64-linux-gnu-gcc" | |
[target.aarch64-unknown-linux-musl] | |
linker = "aarch64-linux-gnu-gcc" | |
[target.armv7-unknown-linux-gnueabihf] | |
linker = "arm-linux-gnueabihf-gcc" | |
[target.armv7-unknown-linux-musleabihf] | |
linker = "arm-linux-gnueabihf-gcc" | |
[target.arm-unknown-linux-gnueabihf] | |
linker = "arm-linux-gnueabihf-gcc" | |
[target.arm-unknown-linux-musleabihf] | |
linker = "arm-linux-gnueabihf-gcc" | |
EOF | |
- name: Install rust target | |
run: rustup target add $TARGET | |
- name: List contents of the repository | |
run: ls -la | |
- name: Print current working directory | |
run: pwd | |
- name: change path | |
run: cd fluent_cli/ | |
- name: List contents of the repository | |
run: ls -la | |
- name: Install wasm-bindgen-cli | |
if: matrix.TARGET == 'wasm32-unknown-unknown' | |
run: cargo install wasm-bindgen-cli | |
- name: Run build | |
run: | | |
if [[ $TARGET == "wasm32-unknown-unknown" ]]; then | |
cargo build --release --target $TARGET --manifest-path fluent_cli/Cargo.toml | |
wasm-bindgen --out-dir ./artifacts --target web fluent_cli/target/$TARGET/release/fluent.wasm | |
else | |
cargo build --release --verbose --target $TARGET --manifest-path fluent_cli/Cargo.toml | |
fi | |
- name: List contents of the repository | |
run: ls -lh fluent_cli/target | |
- name: List fluent_cli/target | |
run: find fluent_cli/target | |
- name: Compress | |
run: | | |
mkdir -p ./artifacts | |
if [[ $OS =~ ^windows.*$ ]]; then | |
EXEC=$NAME.exe | |
else | |
EXEC=$NAME | |
fi | |
if [[ $GITHUB_REF_TYPE =~ ^tag$ ]]; then | |
TAG=$GITHUB_REF_NAME | |
else | |
TAG=$GITHUB_SHA | |
fi | |
if [[ $TARGET == "wasm32-unknown-unknown" ]]; then | |
tar -czf ./artifacts/$NAME-$TARGET-$TAG.tar.gz -C ./artifacts . | |
else | |
mv fluent_cli/target/$TARGET/release/$EXEC ./$EXEC | |
tar -czf ./artifacts/$NAME-$TARGET-$TAG.tar.gz $EXEC fluent_cli/config.json amber.yaml amber-x86_64-apple-darwin amber-x86_64-pc-windows-gnu.exe amber-x86_64-unknown-linux-musl fluent_cli/fluent_cli_autocomplete.ps1 fluent_cli/fluent_cli_autocomplete.sh fluent_cli/windows-amber-key-setup.bat | |
fi | |
- name: Archive artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: result | |
path: ./artifacts | |
# deploys to github releases on tag | |
deploy: | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: result | |
path: ./artifacts | |
- name: List | |
run: find ./artifacts | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: ./artifacts/*.tar.gz |