Skip to content

Add Python Package #209

Add Python Package

Add Python Package #209

Workflow file for this run

name: Rust-CI
on:
workflow_dispatch:
# schedule:
# - cron: "17 17 * * *"
pull_request:
# types: [labeled, review_requested]
push:
tags:
- "v*.*.*"
jobs:
coverage:
name: Test and Coverage
if: github.actor == 'iesahin'
runs-on: macos-latest
timeout-minutes: 50
strategy:
matrix:
build: [nightly]
include:
# - build: stable
# benches: true
# - build: beta
# rust: beta
- build: nightly
rust: nightly
test-args: --all-features --no-fail-fast
## for submitters other than me, I'll add another job here.
# test-args: --no-fail-fast
# test-args: --all-features
benches: true
coverage: true
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
DIGITAL_OCEAN_ACCESS_KEY_ID: ${{ secrets.DIGITAL_OCEAN_ACCESS_KEY_ID }}
DIGITAL_OCEAN_SECRET_ACCESS_KEY: ${{ secrets.DIGITAL_OCEAN_SECRET_ACCESS_KEY }}
WASABI_ACCESS_KEY_ID: ${{ secrets.WASABI_ACCESS_KEY_ID }}
WASABI_SECRET_ACCESS_KEY: ${{ secrets.WASABI_SECRET_ACCESS_KEY }}
GCS_ACCESS_KEY_ID: ${{ secrets.GCS_ACCESS_KEY_ID }}
GCS_SECRET_ACCESS_KEY: ${{ secrets.GCS_SECRET_ACCESS_KEY }}
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
MINIO_ACCESS_KEY_ID: ${{ secrets.MINIO_ACCESS_KEY_ID }}
MINIO_SECRET_ACCESS_KEY: ${{ secrets.MINIO_SECRET_ACCESS_KEY }}
XVC_TEST_ONE_EMRESULT_COM_KEY: ${{ secrets.XVC_TEST_ONE_EMRESULT_COM_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v1
# - name: Install required packages
#
# run: sudo apt install -y inotify-tools ripgrep s3cmd
- name: Install required packages
run: |
brew install s3cmd
brew install ripgrep
brew install tree
- name: Git config for automated Git tests
run: git config --global user.name 'Xvc Rabbit' && git config --global user.email '[email protected]' && git config --global init.defaultBranch main
- name: Write the private key file for one.emresult.com connection
run: mkdir -p $HOME/.ssh/ && echo "${XVC_TEST_ONE_EMRESULT_COM_KEY}" > $HOME/.ssh/id_rsa ; chmod 600 ~/.ssh/id_rsa
- name: Write an ssh config to allow connection
run: echo 'Host *' >> $HOME/.ssh/config ; echo ' StrictHostKeyChecking no' >> $HOME/.ssh/config ; chmod 400 $HOME/.ssh/config
- name: List .ssh contents
run: ls -R $HOME/.ssh ; cat $HOME/.ssh/id_rsa ; cat $HOME/.ssh/config
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust || 'stable' }}
profile: minimal
components: llvm-tools-preview
override: true
- name: Build debug
uses: actions-rs/cargo@v1
with:
command: build
args: ${{ matrix.build-args }}
env:
RUSTFLAGS: "-A dead_code"
- name: Test
if: matrix.coverage
uses: actions-rs/cargo@v1
with:
command: test
args: ${{ matrix.test-args }}
env:
CARGO_INCREMENTAL: "0"
# To debug the output when commands fail
TRYCMD: "dump"
RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off"
RUSTDOCFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off"
- name: Coverage
id: coverage
if: matrix.coverage
uses: actions-rs/[email protected]
- name: Test all benches
if: matrix.benches
uses: actions-rs/cargo@v1
with:
command: test
args: --benches ${{ matrix.features }}
- name: Upload to codecov.io
if: matrix.coverage
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ${{ steps.coverage.outputs.report }}
deploy-linux:
name: deploy-linux
needs: [coverage]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
strategy:
matrix:
target:
[
x86_64-unknown-linux-gnu
]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: false
command: build
args: --release --target ${{ matrix.target }}
- name: Package
shell: bash
run: |
#strip target/${{ matrix.target }}/release/xvc
cd target/${{ matrix.target }}/release
tar czvf ../../../xvc-${{ github.ref_name}}-${{ matrix.target }}.tar.gz xvc
cd -
- name: Publish
uses: softprops/action-gh-release@v1
# TODO: if any of the build step fails, the release should be deleted.
with:
files: "xvc*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-windows:
name: deploy-windows
needs: [coverage]
if: startsWith(github.ref, 'refs/tags/')
runs-on: windows-latest
strategy:
matrix:
target:
[
x86_64-pc-windows-gnu
]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: false
command: build
args: --release --target ${{ matrix.target }}
- name: Package
shell: bash
run: |
#strip target/${{ matrix.target }}/release/xvc
cd target/${{ matrix.target }}/release
tar czvf ../../../xvc-${{ github.ref_name}}-${{ matrix.target }}.tar.gz xvc
cd -
- name: Publish
uses: softprops/action-gh-release@v1
# TODO: if any of the build step fails, the release should be deleted.
with:
files: "xvc*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-macos:
name: deploy-macos
needs: [coverage]
if: startsWith(github.ref, 'refs/tags/')
runs-on: macos-latest
strategy:
matrix:
target:
[
x86_64-apple-darwin
]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: false
command: build
args: --release --target ${{ matrix.target }}
- name: Package
shell: bash
run: |
#strip target/${{ matrix.target }}/release/xvc
cd target/${{ matrix.target }}/release
tar czvf ../../../xvc-${{ github.ref_name}}-${{ matrix.target }}.tar.gz xvc
cd -
- name: Publish
uses: softprops/action-gh-release@v1
# TODO: if any of the build step fails, the release should be deleted.
with:
files: "xvc*"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}