Merge pull request #3 from tablelandnetwork/bcalza/increase-limits #30
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: Deploy | |
concurrency: | |
group: deploy-${{github.ref}} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- "**" | |
release: | |
types: | |
- created | |
env: | |
GKE_REGION: us-east1 | |
GKE_CLUSTER: basin | |
CONTAINER_REGISTRY: us-west1-docker.pkg.dev | |
PRIVATEKEY: ${{ secrets.PRIVATEKEY }} | |
PROOF: ${{ secrets.PROOF }} | |
jobs: | |
deploy: | |
if: github.event_name == 'release' || github.ref == 'refs/heads/main' || contains(github.event.head_commit.message, '[staging]') | |
name: Deploy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Dump GitHub context | |
env: | |
GITHUB_CONTEXT: ${{ toJSON(github) }} | |
run: echo "$GITHUB_CONTEXT" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare | |
id: prep | |
run: | | |
if [[ ${{ github.event_name }} == 'release' ]]; then | |
echo "DEPLOYMENT=staging" >> "$GITHUB_ENV" | |
else | |
echo "DEPLOYMENT=staging" >> "$GITHUB_ENV" | |
fi | |
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV" | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Cache Docker layers | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Buildx patch | |
run: | | |
Dockfiles="$(find $1 -name 'Dockerfile')" | |
d=$(date +%s) | |
i=0 | |
for file in $Dockfiles; do | |
i=$(( i + 1 )) | |
echo "patching timestamp for $file" | |
touch -d @$(( d + i )) "$file" | |
done | |
- name: Google Auth | |
uses: 'google-github-actions/auth@v1' | |
with: | |
credentials_json: '${{ secrets.GCP_CREDENTIALS }}' | |
- name: Install Cloud SDK | |
uses: google-github-actions/setup-gcloud@v1 | |
with: | |
version: 415.0.0 | |
project_id: ${{ secrets.GCP_PROJECT }} | |
- name: Configure Docker | |
run: gcloud auth configure-docker $CONTAINER_REGISTRY | |
- name: Build and push api | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./ | |
file: ./Dockerfile | |
builder: ${{ steps.buildx.outputs.name }} | |
push: true | |
tags: ${{ env.CONTAINER_REGISTRY }}/${{ secrets.GCP_PROJECT }}/textile/basin/basin_w3s:sha-${{ env.SHA_SHORT}} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
- name: Get GKE Credentials | |
uses: 'google-github-actions/get-gke-credentials@v1' | |
with: | |
cluster_name: ${{ env.GKE_CLUSTER }} | |
location: ${{ env.GKE_REGION }} | |
- name: Deploy to GKE | |
working-directory: ./k8s | |
run: | | |
DEPLOYMENT=$DEPLOYMENT IMAGE_BASIN_W3S=$CONTAINER_REGISTRY/${{ secrets.GCP_PROJECT }}/textile/basin/basin_w3s:sha-$SHA_SHORT make deploy |