stages:
  - "build"
  - "test"
  - "publish"

build_job:
  stage: build
  image: public.ecr.aws/docker/library/golang:1.21
  parallel:
    matrix:
      - GOOS:
          - linux
          - darwin
          - windows
      - GOARCH:
          - amd64
          - arm64
  script: |
    go build \
    -o webservice_$GOOS_$GOARCH.bin \
    ./*.go

test_job:
  stage: test
  image: public.ecr.aws/docker/library/golang:1.21
  script:
    - go get -t ./...
    - go test -race -v ./...

publish_job:
  stage: publish
  image: public.ecr.aws/ubuntu/ubuntu:22.04_stable
  script: echo publishing now