diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bb1662d..12e027b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,40 +20,44 @@ jobs: - name: Get Version id: get_version uses: battila7/get-version-action@v2.0.0 - - - name: Install go-bindata and build migrations - env: - GOPATH: /home/runner/work/Geeksbot/ - run: | - go get -u github.com/go-bindata/go-bindata/... - /home/runner/work/Geeksbot/bin/go-bindata -pkg migrations -prefix $GITHUB_WORKSPACE/pkg/database/migrations/ -o $GITHUB_WORKSPACE/pkg/database/migrations/bindata.go $GITHUB_WORKSPACE/pkg/database/migrations/ - head $GITHUB_WORKSPACE/pkg/database/migrations/bindata.go - - - name: Build container image - env: - IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} - run: docker build -t registry.digitalocean.com/djpianalto/geeksbot:$IMAGE_TAG . - - - name: Install doctl - uses: digitalocean/action-doctl@v2 + + - name: install buildx + id: buildx + uses: crazy-max/ghaction-docker-buildx@v1 with: - token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} + version: latest - - name: Login to DigitalOcean Container Registry with short-lived credentials - run: doctl registry login --expiry-seconds 600 + - name: Docker Login + # You may pin to the exact commit or the version. + # uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + uses: docker/login-action@v1.10.0 + with: + registry: ${{ secrets.DR_URL }} + # Username used to log against the Docker registry + username: ${{ secrets.DH_USERNAME }} + # Password or personal access token used to log against the Docker registry + password: ${{ secrets.DH_PASSWORD }} + # Log out from the Docker registry at the end of a job + logout: true - - name: Push image to DigitalOcean Container Registry - run: docker push registry.digitalocean.com/djpianalto/geeksbot:$IMAGE_TAG + - name: Docker Build & Push env: IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} + run: | + docker buildx build --push \ + --tag ${{ secrets.DR_URL }}/geeksbot:$IMAGE_TAG \ + --platform linux/amd64,linux/arm/v7,linux/arm64 . - name: Update deployment file - run: TAG=${{ steps.get_version.outputs.version-without-v }} && sed -i 's||registry.digitalocean.com/djpianalto/geeksbot:'${TAG}'|' $GITHUB_WORKSPACE/deployment.yml + run: TAG=${{ steps.get_version.outputs.version-without-v }} && sed -i 's||${{ secrets.DR_URL }}/geeksbot:'${TAG}'|' $GITHUB_WORKSPACE/deployment.yml - - name: Save DigitalOcean kubeconfig with short-lived credentials - run: doctl kubernetes cluster kubeconfig save --expiry-seconds 600 discord-bots + - uses: azure/k8s-set-context@v1 + with: + method: kubeconfig + kubeconfig: ${{ secrets.KUBE_CONFIG }} + id: setcontext - - name: Deploy to DigitalOcean Kubernetes + - name: Deploy to Kubernetes run: kubectl apply -f $GITHUB_WORKSPACE/deployment.yml - name: Verify deployment diff --git a/deployment.yml b/deployment.yml index 7ed3772..8305819 100644 --- a/deployment.yml +++ b/deployment.yml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: geeksbot - namespace: default + namespace: discord-bots labels: app: geeksbot spec: @@ -23,6 +23,13 @@ spec: containers: - name: geeksbot image: + resources: + requests: + memory: "512Mi" + cpu: "1" + limits: + memory: "1Gi" + cpu: "2" env: - name: DATABASE_URL valueFrom: @@ -34,5 +41,5 @@ spec: secretKeyRef: name: geeksbot key: discord_token - nodeSelector: - geeks: "yes" + imagePullSecrets: + - name: registry-2 \ No newline at end of file