Release #21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
workflow_dispatch: | |
release: | |
types: [published, edited] | |
jobs: | |
build-push-image: | |
name: Build & push image | |
if: false # temporary disable | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
token: ${{ secrets.KWIL_MACH_SECRET }} | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: '23.4' | |
repo-token: ${{ secrets.KWIL_MACH_SECRET }} | |
- name: Install Taskfile | |
uses: arduino/setup-task@v1 | |
with: | |
repo-token: ${{ secrets.KWIL_MACH_SECRET }} | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.22' | |
check-latest: true | |
- name: Install dependencies | |
env: | |
GH_ACCESS_TOKEN: ${{ secrets.KWIL_MACH_SECRET }} | |
run: | | |
go version | |
git config --global url."https://${GH_ACCESS_TOKEN}:[email protected]/kwilteam/".insteadOf "https://github.com/kwilteam/" | |
task install:deps | |
go mod download | |
- name: Generate go vendor | |
#for faster builds and private repos, need to run this after pb:compile:v1 | |
run: | | |
task vendor | |
- name: configure variables | |
id: config | |
run: | | |
version=`echo ${{ github.event.release.tag_name }} | sed 's/^v//'` | |
echo "version=$version" >> $GITHUB_OUTPUT | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }} | |
aws-region: us-east-1 | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Cache Docker layers for KD | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache-kwild | |
#key: ${{ runner.os }}-buildx-kwild-${{ github.sha }} | |
key: ${{ runner.os }}-buildx-kwild | |
restore-keys: | | |
${{ runner.os }}-buildx-kwild | |
- name: Build & push KD image | |
id: docker_build_kwild | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
builder: ${{ steps.buildx.outputs.name }} | |
build-args: | | |
git_commit=${{ github.sha }} | |
version=${{ steps.config.outputs.version }} | |
build_time=${{ github.event.release.created_at }} | |
file: ./build/package/docker/kwild.dockerfile | |
push: true | |
tags: | | |
${{ steps.login-ecr.outputs.registry }}/${{ secrets.AWS_KWILD_ECR }}:${{ steps.config.outputs.version }} | |
${{ steps.login-ecr.outputs.registry }}/${{ secrets.AWS_KWILD_ECR }}:latest | |
cache-from: type=local,src=/tmp/.buildx-cache-kwild | |
cache-to: type=local,dest=/tmp/.buildx-cache-kwild-new | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache-kwild | |
mv /tmp/.buildx-cache-kwild-new /tmp/.buildx-cache-kwild | |
deploy-to-eks: | |
name: Deploy to k8s cluster | |
runs-on: ubuntu-latest | |
needs: build-push-image | |
steps: | |
- name: configure variables | |
id: config | |
run: | | |
if [[ '${{ github.event.release.prerelease }}' == 'true' ]]; then | |
echo "cluster=staging" >> $GITHUB_OUTPUT | |
else | |
echo "cluster=prod" >> $GITHUB_OUTPUT | |
fi | |
version=`echo ${{ github.event.release.tag_name }} | sed 's/^v//'` | |
echo "version=$version" >> $GITHUB_OUTPUT | |
- name: deploy by release type to different eks cluster | |
run: | | |
echo "will deploy ${{ steps.config.outputs.version }} to eks ${{ steps.config.outputs.cluster }} cluster" |