aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/rust-linux.yml62
-rw-r--r--.github/workflows/rust-mac.yml61
-rw-r--r--.github/workflows/workspace.yml149
3 files changed, 149 insertions, 123 deletions
diff --git a/.github/workflows/rust-linux.yml b/.github/workflows/rust-linux.yml
deleted file mode 100644
index c5a65a11..00000000
--- a/.github/workflows/rust-linux.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: build-linux
-
-on: [push, pull_request]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- db-backend: [sqlite, mysql, postgresql]
-
- steps:
- - uses: actions/checkout@v1
- - name: Install dependencies
- run: sudo apt update && sudo apt install --no-install-recommends openssl sqlite3 libmysql++-dev libpq-dev
-
- - name: Cache cargo registry
- uses: actions/[email protected]
- with:
- path: ~/.cargo/registry
- key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- - name: Cache cargo index
- uses: actions/[email protected]
- with:
- path: ~/.cargo/git
- key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- - name: Cache cargo build
- uses: actions/[email protected]
- with:
- path: target
- key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Install latest nightly
- uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly
- override: true
- profile: minimal
- target: x86_64-unknown-linux-gnu
-
- - name: Build
- run: cargo build --verbose --features ${{ matrix.db-backend }} --release --target x86_64-unknown-linux-gnu
-
- - name: Run tests
- run: cargo test --features ${{ matrix.db-backend }}
-
- - name: Upload linux artifact
- uses: actions/[email protected]
- with:
- name: x86_64-unknown-linux-gnu-${{ matrix.db-backend }}-bitwarden_rs
- path: target/x86_64-unknown-linux-gnu/release/bitwarden_rs
-
- - name: Release
- uses: Shopify/[email protected]
- if: startsWith(github.ref, 'refs/tags/')
- with:
- name: x86_64-unknown-linux-gnu-${{ matrix.db-backend }}-bitwarden_rs
- path: target/x86_64-apple-darwin/release/bitwarden_rs
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
diff --git a/.github/workflows/rust-mac.yml b/.github/workflows/rust-mac.yml
deleted file mode 100644
index 87fafc9b..00000000
--- a/.github/workflows/rust-mac.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-name: build-mac
-
-on: [push, pull_request]
-
-jobs:
- build:
-
- runs-on: macos-latest
-
- strategy:
- matrix:
- db-backend: [sqlite, mysql, postgresql]
-
- steps:
- - uses: actions/checkout@v1
- - name: Install dependencies
- run: brew install openssl sqlite libpq mysql
-
- - name: Cache cargo registry
- uses: actions/[email protected]
- with:
- path: ~/.cargo/registry
- key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- - name: Cache cargo index
- uses: actions/[email protected]
- with:
- path: ~/.cargo/git
- key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
- - name: Cache cargo build
- uses: actions/[email protected]
- with:
- path: target
- key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Install latest nightly
- uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly
- override: true
- profile: minimal
- target: x86_64-apple-darwin
-
- - name: Build
- run: cargo build --verbose --features ${{ matrix.db-backend }} --release --target x86_64-apple-darwin
-
- - name: Run tests
- run: cargo test --features ${{ matrix.db-backend }}
-
- - name: Upload macOS artifact
- uses: actions/[email protected]
- with:
- name: x86_64-apple-darwin-${{ matrix.db-backend }}-bitwarden_rs
- path: target/x86_64-apple-darwin/release/bitwarden_rs
-
- - name: Release
- uses: Shopify/[email protected]
- if: startsWith(github.ref, 'refs/tags/')
- with:
- name: x86_64-apple-darwin-${{ matrix.db-backend }}-bitwarden_rs
- path: target/x86_64-apple-darwin/release/bitwarden_rs
- repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/workspace.yml b/.github/workflows/workspace.yml
new file mode 100644
index 00000000..222b66c3
--- /dev/null
+++ b/.github/workflows/workspace.yml
@@ -0,0 +1,149 @@
+name: Workflow
+
+on:
+ push:
+ paths-ignore:
+ - "**.md"
+ pull_request:
+ paths-ignore:
+ - "**.md"
+
+jobs:
+ build:
+ name: Build
+ strategy:
+ fail-fast: false
+ matrix:
+ db-backend: [sqlite, mysql, postgresql]
+ target:
+ - x86_64-unknown-linux-gnu
+ # - x86_64-unknown-linux-musl
+ - x86_64-apple-darwin
+ # - x86_64-pc-windows-msvc
+ include:
+ - target: x86_64-unknown-linux-gnu
+ os: ubuntu-latest
+ ext:
+ # - target: x86_64-unknown-linux-musl
+ # os: ubuntu-latest
+ # ext:
+ - target: x86_64-apple-darwin
+ os: macOS-latest
+ ext:
+ # - target: x86_64-pc-windows-msvc
+ # os: windows-latest
+ # ext: .exe
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v1
+
+ # - name: Cache choco cache
+ # uses: actions/[email protected]
+ # if: matrix.os == 'windows-latest'
+ # with:
+ # path: ~\AppData\Local\Temp\chocolatey
+ # key: ${{ runner.os }}-choco-cache-${{ matrix.db-backend }}
+
+ - name: Cache vcpkg installed
+ uses: actions/[email protected]
+ if: matrix.os == 'windows-latest'
+ with:
+ path: $VCPKG_ROOT/installed
+ key: ${{ runner.os }}-vcpkg-cache-${{ matrix.db-backend }}
+ env:
+ VCPKG_ROOT: 'C:\vcpkg'
+
+ - name: Cache vcpkg downloads
+ uses: actions/[email protected]
+ if: matrix.os == 'windows-latest'
+ with:
+ path: $VCPKG_ROOT/downloads
+ key: ${{ runner.os }}-vcpkg-cache-${{ matrix.db-backend }}
+ env:
+ VCPKG_ROOT: 'C:\vcpkg'
+
+ # - name: Cache homebrew
+ # uses: actions/[email protected]
+ # if: matrix.os == 'macOS-latest'
+ # with:
+ # path: ~/Library/Caches/Homebrew
+ # key: ${{ runner.os }}-brew-cache
+
+ # - name: Cache apt
+ # uses: actions/[email protected]
+ # if: matrix.os == 'ubuntu-latest'
+ # with:
+ # path: /var/cache/apt/archives
+ # key: ${{ runner.os }}-apt-cache
+
+ # Install dependencies
+ - name: Install dependencies macOS
+ run: brew update; brew install openssl sqlite libpq mysql
+ if: matrix.os == 'macOS-latest'
+
+ - name: Install dependencies Ubuntu
+ run: sudo apt-get update && sudo apt-get install --no-install-recommends openssl sqlite libpq-dev libmysql++-dev
+ if: matrix.os == 'ubuntu-latest'
+
+ - name: Install dependencies Windows
+ run: vcpkg integrate install; vcpkg install sqlite3:x64-windows openssl:x64-windows libpq:x64-windows libmysql:x64-windows
+ if: matrix.os == 'windows-latest'
+ env:
+ VCPKG_ROOT: 'C:\vcpkg'
+ # End Install dependencies
+
+ # Install rust nightly toolchain
+ - name: Cache cargo registry
+ uses: actions/[email protected]
+ with:
+ path: ~/.cargo/registry
+ key: ${{ runner.os }}-${{matrix.db-backend}}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
+ - name: Cache cargo index
+ uses: actions/[email protected]
+ with:
+ path: ~/.cargo/git
+ key: ${{ runner.os }}-${{matrix.db-backend}}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
+ - name: Cache cargo build
+ uses: actions/[email protected]
+ with:
+ path: target
+ key: ${{ runner.os }}-${{matrix.db-backend}}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Install latest nightly
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: nightly
+ override: true
+ profile: minimal
+ target: ${{ matrix.target }}
+
+ # Build
+ - name: Build Win
+ if: matrix.os == 'windows-latest'
+ run: cargo.exe build --features ${{ matrix.db-backend }} --release --target ${{ matrix.target }}
+ env:
+ RUSTFLAGS: -Ctarget-feature=+crt-static
+ VCPKG_ROOT: 'C:\vcpkg'
+
+ - name: Build macOS / Ubuntu
+ if: matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest'
+ run: cargo build --verbose --features ${{ matrix.db-backend }} --release --target ${{ matrix.target }}
+
+ # Test
+ - name: Run tests
+ run: cargo test --features ${{ matrix.db-backend }}
+
+ # Upload & Release
+ - name: Upload artifact
+ uses: actions/[email protected]
+ with:
+ name: bitwarden_rs-${{ matrix.db-backend }}-${{ matrix.target }}${{ matrix.ext }}
+ path: target/${{ matrix.target }}/release/bitwarden_rs${{ matrix.ext }}
+
+ - name: Release
+ uses: Shopify/[email protected]
+ if: startsWith(github.ref, 'refs/tags/')
+ with:
+ name: bitwarden_rs-${{ matrix.db-backend }}-${{ matrix.target }}${{ matrix.ext }}
+ path: target/${{ matrix.target }}/release/bitwarden_rs${{ matrix.ext }}
+ repo-token: ${{ secrets.GITHUB_TOKEN }}