split CI pipelines to improve speed and automate deployment to production through manual action
This commit is contained in:
parent
c3a7a9d122
commit
11a208d42e
|
@ -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:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }}
|
||||
INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }}
|
||||
POSTHOG_URL: ${{ secrets.POSTHOG_URL }}
|
||||
|
||||
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: Configure AWS Credentials
|
||||
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)
|
||||
- name: Tag and release Docker images (Self Host)
|
||||
run: |
|
||||
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:
|
||||
DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
|
||||
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 }}
|
||||
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