diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml new file mode 100644 index 0000000000..778029bf03 --- /dev/null +++ b/.github/workflows/deploy-cloud.yaml @@ -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 \ No newline at end of file diff --git a/.github/workflows/release-charts.yml b/.github/workflows/release-charts.yml deleted file mode 100644 index 1ad5a54edd..0000000000 --- a/.github/workflows/release-charts.yml +++ /dev/null @@ -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 }}" \ No newline at end of file diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 4fc8a98350..c34e1dac22 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -3,43 +3,58 @@ 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" + release_tag=v$release_version + + # Pull apps and worker images + docker pull budibase/apps:$release_tag + docker pull budibase/worker:$release_tag + + # Tag apps and worker images + docker tag budibase/apps:$release_tag $SELF_HOST_TAG + docker tag budibase/worker:$release_tag $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 }} - \ No newline at end of file + SELF_HOST_TAG: latest + + - name: Setup Helm + uses: azure/setup-helm@v1 + id: helm-install + + # - 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 add -A + # 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 }}" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4142f7ac9..8768a01c78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,4 +57,25 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - # Release to pre-prod environment \ No newline at end of file + # - 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.preprod.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 }}'