5 changed files with 274 additions and 396 deletions
@ -1,186 +0,0 @@
@@ -1,186 +0,0 @@
|
||||
name: Update Versions |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
|
||||
permissions: {} |
||||
|
||||
jobs: |
||||
setup: |
||||
name: Setup |
||||
if: github.ref_name == 'main' |
||||
runs-on: ubuntu-24.04 |
||||
permissions: |
||||
contents: read |
||||
outputs: |
||||
core_version: ${{ steps.get-core.outputs.version }} |
||||
core_version_update: ${{ steps.core-update.outputs.update }} |
||||
web_version: ${{ steps.get-web.outputs.version }} |
||||
web_version_update: ${{ steps.web-update.outputs.update }} |
||||
key_connector_version: ${{ steps.get-key-connector.outputs.version }} |
||||
key_connector_version_update: ${{ steps.key-connector-update.outputs.update }} |
||||
steps: |
||||
- name: Checkout Branch |
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 |
||||
with: |
||||
persist-credentials: false |
||||
|
||||
- name: Get Latest Core Version |
||||
id: get-core |
||||
uses: bitwarden/gh-actions/get-release-version@main |
||||
with: |
||||
repository: bitwarden/server |
||||
trim: true |
||||
|
||||
- name: Check if Core Version needs updating |
||||
id: core-update |
||||
env: |
||||
LATEST_CORE_VERSION: ${{ steps.get-core.outputs.version }} |
||||
run: | |
||||
CORE_VERSION=$(sed -r -n "s/COREVERSION=\"([0-9]+\.[0-9]+\.[0-9]+)\"/\1/p" bitwarden.sh) |
||||
echo "Core Version: $CORE_VERSION" |
||||
echo "Latest Core Version: $LATEST_CORE_VERSION" |
||||
if [ "$CORE_VERSION" != "$LATEST_CORE_VERSION" ]; then |
||||
echo "Needs Core update!" |
||||
echo "update=1" >> "$GITHUB_OUTPUT" |
||||
else |
||||
echo "update=0" >> "$GITHUB_OUTPUT" |
||||
fi |
||||
|
||||
- name: Get Latest Web Version |
||||
id: get-web |
||||
uses: bitwarden/gh-actions/get-release-version@main |
||||
with: |
||||
repository: bitwarden/clients |
||||
monorepo: true |
||||
monorepo-project: web |
||||
trim: true |
||||
|
||||
- name: Check if Web Version needs updating |
||||
id: web-update |
||||
env: |
||||
LATEST_WEB_VERSION: ${{ steps.get-web.outputs.version }} |
||||
run: | |
||||
WEB_VERSION=$(sed -r -n "s/WEBVERSION=\"([0-9]+\.[0-9]+\.[0-9]+)\"/\1/p" bitwarden.sh) |
||||
echo "Web Version: $WEB_VERSION" |
||||
echo "Latest Web Version: $LATEST_WEB_VERSION" |
||||
if [ "$WEB_VERSION" != "$LATEST_WEB_VERSION" ]; then |
||||
echo "Needs Web update!" |
||||
echo "update=1" >> "$GITHUB_OUTPUT" |
||||
else |
||||
echo "update=0" >> "$GITHUB_OUTPUT" |
||||
fi |
||||
|
||||
- name: Get Latest Key Connector Version |
||||
id: get-key-connector |
||||
uses: bitwarden/gh-actions/get-release-version@main |
||||
with: |
||||
repository: bitwarden/key-connector |
||||
trim: true |
||||
|
||||
- name: Check if Key Connector Version needs updating |
||||
id: key-connector-update |
||||
env: |
||||
LATEST_KEY_CONNECTOR_VERSION: ${{ steps.get-key-connector.outputs.version }} |
||||
run: | |
||||
KEY_CONNECTOR_VERSION=$(sed -r -n "s/KEYCONNECTORVERSION=\"([0-9]+\.[0-9]+\.[0-9]+)\"/\1/p" bitwarden.sh) |
||||
echo "Key Connector Version: $KEY_CONNECTOR_VERSION" |
||||
echo "Latest Key Connector Version: $LATEST_KEY_CONNECTOR_VERSION" |
||||
if [ "$KEY_CONNECTOR_VERSION" != "$LATEST_KEY_CONNECTOR_VERSION" ]; then |
||||
echo "Needs Key Connector update!" |
||||
echo "update=1" >> "$GITHUB_OUTPUT" |
||||
else |
||||
echo "update=0" >> "$GITHUB_OUTPUT" |
||||
fi |
||||
|
||||
|
||||
update-versions: |
||||
name: "Update versions" |
||||
if: | |
||||
needs.setup.outputs.core_version_update == 1 || |
||||
needs.setup.outputs.web_version_update == 1 || |
||||
needs.setup.outputs.key_connector_version_update == 1 |
||||
runs-on: ubuntu-24.04 |
||||
needs: setup |
||||
permissions: |
||||
id-token: write |
||||
steps: |
||||
- name: Log in to Azure |
||||
uses: bitwarden/gh-actions/azure-login@main |
||||
with: |
||||
subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} |
||||
tenant_id: ${{ secrets.AZURE_TENANT_ID }} |
||||
client_id: ${{ secrets.AZURE_CLIENT_ID }} |
||||
|
||||
- name: Get Azure Key Vault secrets |
||||
id: get-kv-secrets |
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@main |
||||
with: |
||||
keyvault: gh-org-bitwarden |
||||
secrets: "BW-GHAPP-ID,BW-GHAPP-KEY" |
||||
|
||||
- name: Log out from Azure |
||||
uses: bitwarden/gh-actions/azure-logout@main |
||||
|
||||
- name: Generate GH App token |
||||
uses: actions/create-github-app-token@0f859bf9e69e887678d5bbfbee594437cb440ffe # v2.1.0 |
||||
id: app-token |
||||
with: |
||||
app-id: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-ID }} |
||||
private-key: ${{ steps.get-kv-secrets.outputs.BW-GHAPP-KEY }} |
||||
permission-contents: write |
||||
|
||||
|
||||
- name: Checkout Branch |
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 |
||||
with: |
||||
ref: main |
||||
token: ${{ steps.app-token.outputs.token }} |
||||
persist-credentials: true |
||||
|
||||
- name: Configure Git |
||||
run: | |
||||
git config --local user.email "actions@github.com" |
||||
git config --local user.name "Github Actions" |
||||
|
||||
- name: Update Core Version |
||||
env: |
||||
VERSION: ${{ needs.setup.outputs.core_version }} |
||||
run: | |
||||
sed -i -e "/^\s*COREVERSION\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.sh |
||||
sed -i -e "/^\s*\$coreVersion\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.ps1 |
||||
sed -i -e '/"coreVersion":/ s/"coreVersion":[^,]*/"coreVersion":"'$VERSION'"/' version.json |
||||
|
||||
- name: Update Web Version |
||||
env: |
||||
VERSION: ${{ needs.setup.outputs.web_version }} |
||||
run: | |
||||
sed -i -e "/^\s*WEBVERSION\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.sh |
||||
sed -i -e "/^\s*\$webVersion\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.ps1 |
||||
sed -i -e '/"webVersion":/ s/"webVersion":[^,]*/"webVersion":"'$VERSION'"/' version.json |
||||
|
||||
- name: Update Key Connector Version |
||||
env: |
||||
VERSION: ${{ needs.setup.outputs.key_connector_version }} |
||||
run: | |
||||
sed -i -e "/^\s*KEYCONNECTORVERSION\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.sh |
||||
sed -i -e "/^\s*\$keyConnectorVersion\s*=\s*/s/[0-9]\+.[0-9]\+.[0-9]\+/$VERSION/" bitwarden.ps1 |
||||
sed -i -e '/"keyConnectorVersion":/ s/"keyConnectorVersion":[^,]*/"keyConnectorVersion":"'$VERSION'"/' version.json |
||||
|
||||
- name: Check if version changed |
||||
id: version-changed |
||||
run: | |
||||
if [ -n "$(git status --porcelain)" ]; then |
||||
echo "changes_to_commit=TRUE" >> "$GITHUB_OUTPUT" |
||||
else |
||||
echo "changes_to_commit=FALSE" >> "$GITHUB_OUTPUT" |
||||
echo "No changes to commit!"; |
||||
fi |
||||
|
||||
- name: Commit files |
||||
if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} |
||||
run: git commit -m "Updated core, web, and key-connector versions" -a |
||||
|
||||
- name: Push changes |
||||
if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} |
||||
run: git push |
||||
Loading…
Reference in new issue