split CI pipelines to improve speed and automate deployment to production through manual action
This commit is contained in:
parent
1ab1e7517d
commit
1cc2b98de5
|
@ -0,0 +1,41 @@
|
||||||
|
name: Budibase Cloud Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: Budibase release version. For example - 1.0.0
|
||||||
|
required: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Pull values.yaml from budibase-infra
|
||||||
|
run: |
|
||||||
|
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12]
|
||||||
|
-H 'Accept: application/vnd.github.v3.raw' \
|
||||||
|
-o values.production.yaml \
|
||||||
|
-L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml
|
||||||
|
|
||||||
|
- name: Get the latest budibase release version if not specifically set
|
||||||
|
if: ${{ !github.event.inputs.version }}
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y jq
|
||||||
|
release_version=$(cat lerna.json | jq -r '.version')
|
||||||
|
echo "::set-output name=release_version::$release_version"
|
||||||
|
|
||||||
|
- uses: peymanmortazavi/eks-helm-deploy@v1
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: eu-west-1
|
||||||
|
cluster-name: budibase-eks-production
|
||||||
|
config-files: values.production.yaml
|
||||||
|
namespace: budibase
|
||||||
|
values: appVersion=v${{ github.event.inputs.version || github.steps.version.outputs.release_version }}
|
||||||
|
name: budibase-prod
|
|
@ -1,42 +0,0 @@
|
||||||
name: Budibase Release Helm Charts
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: 14.x
|
|
||||||
- run: yarn
|
|
||||||
- run: yarn bootstrap
|
|
||||||
|
|
||||||
- name: 'Get Previous tag'
|
|
||||||
id: previoustag
|
|
||||||
uses: "WyriHaximus/github-action-get-previous-tag@v1"
|
|
||||||
|
|
||||||
- name: Install Helm
|
|
||||||
uses: azure/setup-helm@v1
|
|
||||||
with:
|
|
||||||
version: v3.4.0
|
|
||||||
|
|
||||||
- run: yarn release:helm
|
|
||||||
env:
|
|
||||||
BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }}
|
|
||||||
|
|
||||||
- name: Configure Git
|
|
||||||
run: |
|
|
||||||
git config user.name "Budibase Helm Bot"
|
|
||||||
git config user.email "<>"
|
|
||||||
|
|
||||||
- name: Run chart-releaser
|
|
||||||
uses: helm/chart-releaser-action@v1.2.1
|
|
||||||
env:
|
|
||||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
@ -3,43 +3,52 @@ name: Budibase Release Docker Selfhost
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
|
||||||
POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }}
|
|
||||||
INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }}
|
|
||||||
POSTHOG_URL: ${{ secrets.POSTHOG_URL }}
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: 14.x
|
|
||||||
- run: yarn
|
|
||||||
- run: yarn bootstrap
|
|
||||||
|
|
||||||
- name: Configure AWS Credentials
|
- name: Tag and release Docker images (Self Host)
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: eu-west-1
|
|
||||||
|
|
||||||
- name: 'Get Previous tag'
|
|
||||||
id: previoustag
|
|
||||||
uses: "WyriHaximus/github-action-get-previous-tag@v1"
|
|
||||||
|
|
||||||
- name: Build/release Docker images (Self Host)
|
|
||||||
run: |
|
run: |
|
||||||
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
|
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
|
||||||
yarn build
|
|
||||||
yarn build:docker:selfhost
|
# Get latest release version
|
||||||
|
sudo apt-get install -y jq
|
||||||
|
release_version=v$(cat lerna.json | jq -r '.version')
|
||||||
|
echo "::set-output name=release_version::$release_version"
|
||||||
|
|
||||||
|
# Pull apps and worker images
|
||||||
|
docker pull budibase/apps:$release_version
|
||||||
|
docker pull budibase/worker:$release_version
|
||||||
|
|
||||||
|
# Tag apps and worker images
|
||||||
|
docker tag budibase/apps:$release_version $SELF_HOST_TAG
|
||||||
|
docker tag budibase/worker:$release_version $SELF_HOST_TAG
|
||||||
|
|
||||||
|
# Push images
|
||||||
|
docker push --all-tags budibase/apps
|
||||||
|
docker push --all-tags budibase/worker
|
||||||
env:
|
env:
|
||||||
DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
|
DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}
|
||||||
BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }}
|
SELF_HOST_TAG: latest
|
||||||
|
|
||||||
|
# - name: Build and release helm chart
|
||||||
|
# run: |
|
||||||
|
# git config user.name "Budibase Helm Bot"
|
||||||
|
# git config user.email "<>"
|
||||||
|
# helm package charts/budibase
|
||||||
|
# git checkout gh-pages
|
||||||
|
# mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs
|
||||||
|
# git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}"
|
||||||
|
# git push
|
||||||
|
# env:
|
||||||
|
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
# - name: Perform github release
|
||||||
|
# run: |
|
||||||
|
# echo release
|
||||||
|
# env:
|
||||||
|
# GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
@ -57,4 +57,25 @@ jobs:
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}
|
||||||
BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }}
|
BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }}
|
||||||
|
|
||||||
# Release to pre-prod environment
|
# - name: Pull values.yaml from budibase-infra
|
||||||
|
# run: |
|
||||||
|
# curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12]
|
||||||
|
# -H 'Accept: application/vnd.github.v3.raw' \
|
||||||
|
# -o values.production.yaml \
|
||||||
|
# -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml
|
||||||
|
|
||||||
|
# - name: Deploy to Preprod Environment
|
||||||
|
# uses: deliverybot/helm@v1
|
||||||
|
# with:
|
||||||
|
# release: budibase-preprod
|
||||||
|
# namespace: budibase
|
||||||
|
# chart: charts/budibase
|
||||||
|
# token: ${{ github.token }}
|
||||||
|
# values: |
|
||||||
|
# appVersion: ${{ steps.previoustag.outputs.tag }}
|
||||||
|
# value-files: >-
|
||||||
|
# [
|
||||||
|
# "values.preprod.yaml"
|
||||||
|
# ]
|
||||||
|
# env:
|
||||||
|
# KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}'
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue