|
|
|
|
@ -66,10 +66,10 @@ jobs:
@@ -66,10 +66,10 @@ jobs:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cli: |
|
|
|
|
name: Build CLI |
|
|
|
|
name: Build CLI ${{ matrix.os }} |
|
|
|
|
strategy: |
|
|
|
|
matrix: |
|
|
|
|
os: [ubuntu-20.04, windows-2019, macos-11] |
|
|
|
|
os: [ubuntu-20.04, macos-11] |
|
|
|
|
runs-on: ${{ matrix.os }} |
|
|
|
|
needs: |
|
|
|
|
- setup |
|
|
|
|
@ -82,14 +82,80 @@ jobs:
@@ -82,14 +82,80 @@ jobs:
|
|
|
|
|
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 |
|
|
|
|
|
|
|
|
|
- name: Setup Unix Vars |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
run: | |
|
|
|
|
echo "LOWER_RUNNER_OS=$(echo $RUNNER_OS | awk '{print tolower($0)}')" >> $GITHUB_ENV |
|
|
|
|
echo "SHORT_RUNNER_OS=$(echo $RUNNER_OS | awk '{print substr($0, 1, 3)}' | \ |
|
|
|
|
awk '{print tolower($0)}')" >> $GITHUB_ENV |
|
|
|
|
|
|
|
|
|
- name: Set up Node |
|
|
|
|
uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 # v3.2.0 |
|
|
|
|
with: |
|
|
|
|
cache: 'npm' |
|
|
|
|
cache-dependency-path: '**/package-lock.json' |
|
|
|
|
node-version: '16' |
|
|
|
|
|
|
|
|
|
- name: Install node-gyp |
|
|
|
|
run: | |
|
|
|
|
npm install -g node-gyp |
|
|
|
|
node-gyp install $(node -v) |
|
|
|
|
|
|
|
|
|
- name: Install |
|
|
|
|
run: npm ci |
|
|
|
|
working-directory: ./ |
|
|
|
|
|
|
|
|
|
- name: Build & Package Unix |
|
|
|
|
run: npm run dist:${{ env.SHORT_RUNNER_OS }} --quiet |
|
|
|
|
|
|
|
|
|
- name: Zip Unix |
|
|
|
|
run: | |
|
|
|
|
cd ./dist/${{ env.LOWER_RUNNER_OS }} |
|
|
|
|
zip ../bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip ./bw |
|
|
|
|
|
|
|
|
|
- name: Version Test |
|
|
|
|
run: | |
|
|
|
|
unzip "./dist/bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip" -d "./test" |
|
|
|
|
testVersion=$(./test/bw -v) |
|
|
|
|
echo "version: $_PACKAGE_VERSION" |
|
|
|
|
echo "testVersion: $testVersion" |
|
|
|
|
if [[ $testVersion != $_PACKAGE_VERSION ]]; then |
|
|
|
|
echo "Version test failed." |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
- name: Create checksums Unix |
|
|
|
|
run: | |
|
|
|
|
cd ./dist |
|
|
|
|
sha256sum bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip \ |
|
|
|
|
| awk '{split($0, a); print a[1]}' > bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
|
|
|
|
|
- name: Upload unix zip asset |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip |
|
|
|
|
path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip |
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload unix checksum asset |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
cli-windows: |
|
|
|
|
name: Build CLI Windows |
|
|
|
|
runs-on: windows-2019 |
|
|
|
|
needs: |
|
|
|
|
- setup |
|
|
|
|
env: |
|
|
|
|
_PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
|
|
|
|
_WIN_PKG_FETCH_VERSION: 16.16.0 |
|
|
|
|
_WIN_PKG_VERSION: 3.4 |
|
|
|
|
steps: |
|
|
|
|
- name: Checkout repo |
|
|
|
|
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2 |
|
|
|
|
|
|
|
|
|
- name: Setup Windows builder |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
choco install checksum --no-progress |
|
|
|
|
choco install reshack --no-progress |
|
|
|
|
@ -109,7 +175,6 @@ jobs:
@@ -109,7 +175,6 @@ jobs:
|
|
|
|
|
|
|
|
|
|
- name: Get pkg-fetch |
|
|
|
|
shell: pwsh |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
cd $HOME |
|
|
|
|
$fetchedUrl = "https://github.com/vercel/pkg-fetch/releases/download/v$env:_WIN_PKG_VERSION/node-v$env:_WIN_PKG_FETCH_VERSION-win-x64" |
|
|
|
|
@ -120,7 +185,6 @@ jobs:
@@ -120,7 +185,6 @@ jobs:
|
|
|
|
|
|
|
|
|
|
- name: Setup Version Info |
|
|
|
|
shell: pwsh |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
$major,$minor,$patch = $env:_PACKAGE_VERSION.split('.') |
|
|
|
|
$versionInfo = @" |
|
|
|
|
@ -155,7 +219,6 @@ jobs:
@@ -155,7 +219,6 @@ jobs:
|
|
|
|
|
|
|
|
|
|
- name: Resource Hacker |
|
|
|
|
shell: cmd |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
set PATH=%PATH%;C:\Program Files (x86)\Resource Hacker |
|
|
|
|
set WIN_PKG=C:\Users\runneradmin\.pkg-cache\v%_WIN_PKG_VERSION%\fetched-v%_WIN_PKG_FETCH_VERSION%-win-x64 |
|
|
|
|
@ -170,16 +233,10 @@ jobs:
@@ -170,16 +233,10 @@ jobs:
|
|
|
|
|
working-directory: ./ |
|
|
|
|
|
|
|
|
|
- name: Build & Package Windows |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: npm run dist:win --quiet |
|
|
|
|
|
|
|
|
|
- name: Build & Package Unix |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
run: npm run dist:${{ env.SHORT_RUNNER_OS }} --quiet |
|
|
|
|
|
|
|
|
|
- name: Package Chocolatey |
|
|
|
|
shell: pwsh |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
Copy-Item -Path stores/chocolatey -Destination dist/chocolatey -Recurse |
|
|
|
|
Copy-Item dist/windows/bw.exe -Destination dist/chocolatey/tools |
|
|
|
|
@ -188,17 +245,9 @@ jobs:
@@ -188,17 +245,9 @@ jobs:
|
|
|
|
|
|
|
|
|
|
- name: Zip Windows |
|
|
|
|
shell: cmd |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: 7z a ./dist/bw-windows-%_PACKAGE_VERSION%.zip ./dist/windows/bw.exe |
|
|
|
|
|
|
|
|
|
- name: Zip Unix |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
run: | |
|
|
|
|
cd ./dist/${{ env.LOWER_RUNNER_OS }} |
|
|
|
|
zip ../bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip ./bw |
|
|
|
|
|
|
|
|
|
- name: Version Test |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
dir ./dist/ |
|
|
|
|
Expand-Archive -Path "./dist/bw-windows-${env:_PACKAGE_VERSION}.zip" -DestinationPath "./test/windows" |
|
|
|
|
@ -210,20 +259,11 @@ jobs:
@@ -210,20 +259,11 @@ jobs:
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- name: Create checksums Windows |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
run: | |
|
|
|
|
checksum -f="./dist/bw-windows-${env:_PACKAGE_VERSION}.zip" ` |
|
|
|
|
-t sha256 | Out-File -Encoding ASCII ./dist/bw-windows-sha256-${env:_PACKAGE_VERSION}.txt |
|
|
|
|
|
|
|
|
|
- name: Create checksums Unix |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
run: | |
|
|
|
|
cd ./dist |
|
|
|
|
sha256sum bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip \ |
|
|
|
|
| awk '{split($0, a); print a[1]}' > bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
|
|
|
|
|
- name: Upload windows zip asset |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-windows-${{ env._PACKAGE_VERSION }}.zip |
|
|
|
|
@ -231,31 +271,13 @@ jobs:
@@ -231,31 +271,13 @@ jobs:
|
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload windows checksum asset |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-windows-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
path: apps/cli/dist/bw-windows-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload unix zip asset |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip |
|
|
|
|
path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-${{ env._PACKAGE_VERSION }}.zip |
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload unix checksum asset |
|
|
|
|
if: runner.os != 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
path: apps/cli/dist/bw-${{ env.LOWER_RUNNER_OS }}-sha256-${{ env._PACKAGE_VERSION }}.txt |
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload Chocolatey asset |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bitwarden-cli.${{ env._PACKAGE_VERSION }}.nupkg |
|
|
|
|
@ -263,7 +285,6 @@ jobs:
@@ -263,7 +285,6 @@ jobs:
|
|
|
|
|
if-no-files-found: error |
|
|
|
|
|
|
|
|
|
- name: Upload NPM Build Directory asset |
|
|
|
|
if: runner.os == 'Windows' |
|
|
|
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 |
|
|
|
|
with: |
|
|
|
|
name: bitwarden-cli-${{ env._PACKAGE_VERSION }}-npm-build.zip |
|
|
|
|
@ -352,6 +373,7 @@ jobs:
@@ -352,6 +373,7 @@ jobs:
|
|
|
|
|
- cloc |
|
|
|
|
- setup |
|
|
|
|
- cli |
|
|
|
|
- cli-windows |
|
|
|
|
- snap |
|
|
|
|
steps: |
|
|
|
|
- name: Check if any job failed |
|
|
|
|
|