diff options
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/publish.yml | 92 | ||||
| -rw-r--r-- | .github/workflows/rust.yml | 24 |
2 files changed, 116 insertions, 0 deletions
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..be57329 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,92 @@ +name: Publish + +on: + push: + tags: + - 'v*' + +defaults: + run: + working-directory: ./decryptor + +jobs: + publish: + name: ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + use-cross: false + + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + use-cross: true + + - os: macos-latest + target: aarch64-apple-darwin + use-cross: false + + - os: macos-12 + target: x86_64-apple-darwin + use-cross: false + + steps: + - uses: actions/checkout@v4 + + - name: Set the version + shell: bash + run: | + echo "DECRYPTOR_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV + echo "version is: ${{ env.DECRYPTOR_VERSION }}" + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - name: Setup native compilation + if: ${{ matrix.use-cross == false }} + shell: bash + run: | + if [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then + sudo apt-get update && sudo apt-get install -y libssl-dev + fi + echo "CARGO=cargo" >> $GITHUB_ENV + + - name: Setup cross compilation + if: ${{ matrix.use-cross == true }} + shell: bash + run: | + dir="$RUNNER_TEMP/cross-download" + mkdir "$dir" + echo "$dir" >> $GITHUB_PATH + cd "$dir" + curl -LO "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-unknown-linux-musl.tar.gz" + tar xf cross-x86_64-unknown-linux-musl.tar.gz + echo "CARGO=cross" >> $GITHUB_ENV + + - name: Build + shell: bash + run: | + $CARGO --version + $CARGO build --release --locked --target ${{ matrix.target }} + + - name: Setup archive + shell: bash + run: | + staging="decryptor-${{ env.DECRYPTOR_VERSION }}-${{ matrix.target }}" + mkdir "$staging" + + cp "target/${{ matrix.target }}/release/decryptor" "$staging/" + tar czf "$staging.tar.gz" "$staging" + echo "ASSET=$staging.tar.gz" >> $GITHUB_ENV + + - name: Upload the binaries + uses: svenstaro/[email protected] + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ./decryptor/${{ env.ASSET }} + asset_name: ${{ env.ASSET }} + tag: ${{ github.ref }} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..29fd6f7 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,24 @@ +name: Rust + +on: + push: + pull_request: + +env: + CARGO_TERM_COLOR: always + +defaults: + run: + working-directory: ./decryptor + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose |
