diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7025d1b..e4e0f35 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,33 +20,45 @@ jobs: - name: Get Version id: get_version uses: battila7/get-version-action@v2.0.0 - - - name: Build container image - env: - IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} - run: docker build -t registry.digitalocean.com/djpianalto/prepbot:$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 + - name: Docker Build & Push env: IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} - run: docker push registry.digitalocean.com/djpianalto/prepbot:$IMAGE_TAG + run: | + docker buildx build --push \ + --tag ${{ secrets.DR_URL }}/prepbot:$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/prepbot:'${TAG}'|' $GITHUB_WORKSPACE/deployment.yml + run: TAG=${{ steps.get_version.outputs.version-without-v }} && sed -i 's||${{ secrets.DR_URL }}/prepbot:'${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 - run: kubectl rollout status deployment/prepbot + run: kubectl rollout status -n discord-bots deployment/prepbot diff --git a/deployment.yml b/deployment.yml index 0ee3ae8..50ca84c 100644 --- a/deployment.yml +++ b/deployment.yml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: prepbot - namespace: default + namespace: discord-bots labels: app: prepbot spec: @@ -23,9 +23,28 @@ spec: containers: - name: prepbot image: + resources: + requests: + memory: "512Mi" + cpu: "1" + limits: + memory: "1Gi" + cpu: "2" env: - name: DISCORD_TOKEN valueFrom: secretKeyRef: name: prepbot key: discord_token + - name: LINK_CHANNEL + valueFrom: + secretKeyRef: + name: prepbot + key: link_channel + - name: CHAT_CHANNEL + valueFrom: + secretKeyRef: + name: prepbot + key: chat_channel + imagePullSecrets: + - name: registry-2 \ No newline at end of file diff --git a/internal/exts/messages/message_events.go b/internal/exts/messages/message_events.go index f36c379..5837977 100644 --- a/internal/exts/messages/message_events.go +++ b/internal/exts/messages/message_events.go @@ -49,8 +49,8 @@ func CleanAmazonURLs(s *discordgo.Session, message *discordgo.MessageCreate) { } func moveNewsLinks(s *discordgo.Session, message *discordgo.MessageCreate) { - linkChannel := "784855106239332352" - chatChannel := "777679317878177804" + linkChannel := os.Getenv("LINK_CHANNEL") + chatChannel := os.Getenv("CHAT_CHANNEL") if message.ChannelID == chatChannel { _, err := sendWebhook(s, message, linkChannel, message.Content) if err != nil {