From e545ecd165716b2758f33240252ef702fd6d8d92 Mon Sep 17 00:00:00 2001 From: Joseph Flinn Date: Fri, 29 Jan 2021 19:09:59 +0000 Subject: [PATCH] starting the deploy breakout --- .github/workflows/deploy.yml | 137 ++++++++++++++++++++++++++++------ .github/workflows/release.yml | 13 +--- 2 files changed, 117 insertions(+), 33 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3f3146fcac..5b4d4c10e8 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,57 +1,146 @@ name: Deploy on: + workflow_dispatch: + inputs: + release_tag_name_input: + description: "Release Tag Name " + required: true release: types: - - prereleased + - published + jobs: setup: runs-on: ubuntu-latest outputs: - package_version: ${{ steps.get_pkg_version.outputs.package_version }} - tag_version: ${{ steps.get_pkg_version.outputs.tag_version }} + package_version: ${{ steps.create_tags.outputs.package_version }} + tag_version: ${{ steps.create_tags.outputs.tag_version }} steps: - name: Checkout Repo uses: actions/checkout@v2 - - name: Get package version - id: get_pkg_version + - name: Create Deploy version vars + id: create_tags run: | - TAG_VERSION=$(echo ${{ github.ref }} | cut -d "/" -f 3) - PKG_VERSION=${TAG_VERSION:1} + if ! [[ "${{ github.event_name }}" -eq "release" ]]; then + case "${RELEASE_TAG_NAME_INPUT:0:1}" in + v) + echo "RELEASE_NAME=${RELEASE_TAG_NAME_INPUT:1}" >> $GITHUB_ENV + echo "RELEASE_TAG_NAME=$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV + echo "::set-output name=package_version::${RELEASE_TAG_NAME_INPUT:1}" + echo "::set-output name=tag_version::$RELEASE_TAG_NAME_INPUT" + ;; + [0-9]) + echo "RELEASE_NAME=$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV + echo "RELEASE_TAG_NAME=v$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV + echo "::set-output name=package_version::$RELEASE_TAG_NAME_INPUT" + echo "::set-output name=tag_version::v$RELEASE_TAG_NAME_INPUT" + ;; + *) + exit 1 + ;; + esac + else + TAG_VERSION=$(echo ${{ github.ref }} | cut -d "/" -f 3) + PKG_VERSION=${TAG_VERSION:1} - echo "::set-output name=package_version::$PKG_VERSION" - echo "::set-output name=tag_version::$TAG_VERSION" + echo "::set-output name=package_version::$PKG_VERSION" + echo "::set-output name=tag_version::$TAG_VERSION" + fi + env: + RELEASE_TAG_NAME_INPUT: ${{ github.event.inputs.release_tag_name_input }} - linux: + snap: + name: Deploy Snap runs-on: ubuntu-latest needs: setup + env: + PKG_VERSION: ${{ needs.setup.outputs.package_version }} + TAG_VERSION: ${{ needs.setup.ouputs.tag_version }} steps: - name: Checkout Repo uses: actions/checkout@v2 - #- name: Install Snap - # uses: samuelmeuli/action-snapcraft@v1 + - name: Install Snap + uses: samuelmeuli/action-snapcraft@v1 # with: # snapcraft_token: ${{ secrets.SNAP_TOKEN }} - - name: Get snap release asset - uses: dsaltares/fetch-gh-release-asset@master + - name: setup + run: mkdir dist + + - name: get snap package + uses: Xotl/cool-github-releases@v1 + with: + mode: download + tag_name: ${{ env.TAG_VERSION }} + assets: bitwarden_${{ env.PKG_VERSION }}_amd64.snap|./dist/bitwarden_${{ env.PKG_VERSION }}_amd64.snap + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: test + run: ls -alht dist + + - name: Deploy to Snap Store + if: false + run: | + snapcraft upload dist/bitwarden_${{ env.PACKAGE_VERSION }}_amd64.snap --release stable + snapcraft logout + + + choco: + name: Deploy Choco + runs-on: windows-latest + needs: setup + env: + PKG_VERSION: ${{ needs.setup.outputs.package_version }} + TAG_VERSION: ${{ needs.setup.outputs.tag_version }} + steps: + - name: Checkout Repo + uses: actions/checkout@v2 + + - name: Get choco release asset + uses: dsaltares/fetch-gh-release-asset@0.0.5 with: version: tags/${{ env.TAG_VERSION }} - file: bitwarden_${{ env.PKG_VERSION }}_amd64.snap - token: ${{ secrets.GITHUB_TOKEN }} + file: bitwarden.${{ env.PKG_VERSION }}.nupkg env: - PKG_VERSION: ${{ needs.setup.outputs.package_version }} - TAG_VERSION: ${{ needs.setup.outputs.tag_version }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: testing - run: ls -atlh + #- name: Setup Chocolatey + # run: choco apikey --key $env:CHOCO_API_KEY --source https://push.chocolatey.org/ + # env: + # CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }} - #- name: Deploy to Snap Store - # run: | - # snapcraft upload dist/bitwarden_${{ env.PACKAGE_VERSION }}_amd64.snap --release stable - # snapcraft logout + - name: make dist dir + shell: pwsh + run: New-Item -ItemType directory -Path ./dist + - name: Get nupkg + uses: Xotl/cool-github-releases@v1 + with: + mode: download + tag_name: ${{ env.TAG_VERSION }} + assets: bitwarden.${{ env.PKG_VERSION }}.nupkg|./dist/bitwarden.${{ env.PKG_VERSION }}.nupkg + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Push to Chocolatey + if: false + shell: pwsh + run: | + cd dist + choco push + + + # Placeholder until the build thing works with the directory-connector + macos: + runs-on: macos-latest + if: false + needs: setup + steps: + - name: Set up Node + uses: actions/setup-node@v1 + with: + node-version: '10.x' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b20775b0b5..aaa355ff59 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,15 +68,10 @@ jobs: sudo apt-get update sudo apt-get -y install pkg-config libxss-dev libsecret-1-dev rpm - - name: Install Snap - uses: samuelmeuli/action-snapcraft@v1 - - name: Print environment run: | node --version npm --version - snap --version - snapcraft --version || echo 'snapcraft unavailable' - name: Checkout repo uses: actions/checkout@v2 @@ -99,7 +94,6 @@ jobs: windows-signed: runs-on: windows-latest - if: false needs: setup steps: - name: Set up dotnet @@ -174,7 +168,7 @@ jobs: SIGNING_CERT_NAME: ${{ secrets.SIGNING_CERT_NAME }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Deploy to Chocolatey + - name: Package Chocolatey shell: pwsh run: | Copy-Item -Path ./stores/chocolatey -Destination ./dist/chocolatey -Recurse @@ -183,9 +177,11 @@ jobs: $checksum = checksum -t sha256 ./dist/chocolatey/Bitwarden-Installer-${{ env.PACKAGE_VERSION }}.exe $chocoInstall = "./dist/chocolatey/tools/chocolateyinstall.ps1" (Get-Content $chocoInstall).replace('__version__', "$env:PACKAGE_VERSION").replace('__checksum__', $checksum) | Set-Content $chocoInstall + ls -alht dist/chocolatey choco pack ./dist/chocolatey/bitwarden.nuspec --version "$env:PACKAGE_VERSION" --out ./dist/chocolatey cd ./dist/chocolatey - choco push + ls -alht dist/chocolatey + #choco push - name: Upload Chocolatey nupkg release asset uses: actions/upload-release-asset@v1 @@ -200,7 +196,6 @@ jobs: windows-store: runs-on: windows-latest - if: false needs: setup steps: - name: Set up Node