Leesah Game

Leesah Game er et hendelsedrevet applikasjonsutviklingspill

View on GitHub

Nais Leesah

Din utfordring er å implementere en QuizParticipant som svarer på alle spørsmålene som publiseres av Quizmaster 🧙. Du står fritt til å utvikle applikasjonen din slik du vil, men dette startprosjektet kommer med nyttig grunnstruktur som hjelper deg raskt å komme i gang med det morsomme; å svare på spørsmål og å vinne quizen! 🎉

Velg ditt språk

  1. Klikk på knappen Use this template som er plassert øverst i repoet
  2. Opprett et nytt offentlig repository fra malen med ditt lagnavn og navikt-organisasjonen som eier
  3. I ditt nye repository legger du til teamet leesah-quiz med adming-tilgang for repoet
  4. Gå deretter til NAIS Console og autoriser repoet ditt ved å klikke på leesah-quiz under My Teams, deretter Repositories, finn ditt repo og klikk Authorize
    • Hvis repoet ditt ikke er på listen, kan du prøve å trigge synkroniseringen manuelt via Synchronize team under Settings
  5. Klon ditt repository til din lokale maskin
    • git clone https://github.com/navikt/<DITT_REPOSITORY_NAVN>.git
  6. Fortsett med guiden nedenfor

Deploy

nais.yaml

Du må deploye appen din for å svare på spørsmål og spille spillet, og til det trenger du å legge inn ditt team navn i nais.yaml.

apiVersion: nais.io/v1alpha1
kind: Application
metadata:
  name: <YOUR_TEAM_NAME> # ENDRE DETTE! Dette vil være navnet på applikasjonen din
  namespace: leesah-quiz
  labels:
    team: leesah-quiz
spec:
  image: {{image}}
  replicas:
    max: 1
    min: 1
  kafka:
    pool: nav-dev
  env:
    - name: QUIZ_TOPIC
      value: leesah-quiz.leesah-rapid-v2

deploy.yaml

Du må også konfigurere en GitHub workflow-fil. Lim inn følgende kode i .github/workflows/deploy.yaml-filen

on: [push]

jobs:
  build_and_push:
    permissions:
      contents: "read"
      id-token: "write"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: '21'
      - name: test and build
        run: gradle build
      - uses: nais/docker-build-push@v0
        id: docker-push
        with:
          team: leesah-quiz
          project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
          identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
          
      - name: Deploy
        uses: nais/deploy/actions/deploy@v2
        env:
          CLUSTER: dev-gcp
          RESOURCE: nais.yaml
          IMAGE: ${{ steps.docker-push.outputs.image }}
          

Hvis du vil trigge en workflow manuelt, kan du legge til workflow_dispatch til on-arrayet.

on: [push, workflow_dispatch]

Du kan også fremskynde deployment ved å avbryte nåværende kjøringer når du deployerer en ny versjon:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

Logger️

Gå til logs.adeo.no for å se applikasjonsloggene dine i Kibana. Når du er “inne” i Kibana, må du endre <YOUR TEAM NAME> til ditt teamnavn.

Nyttige kubectl-kommandoer

Utvikle din quiz-deltaker 🤖

Koden du trenger å endre ligger i main.go/QuizApplication.kt.

Fra kommandolinjen i prosjektets rotmappe kjører du:

For å bygge appen lokalt

Kotlin:

./gradlew clean build

GO:

go build .

For å kjøre appen lokalt (kun med GO)

go run .

Første oppgave

Svar på lagspørsmålet med en hex-farge (6 tegn) i Answer() og deploy applikasjonen til NAIS! PS: husk ‘#’, eksempel: #FFFFFF

Lykke til! Husk å stille spørsmål! ❤️