aboutsummaryrefslogtreecommitdiff
path: root/.woodpecker/release.yaml
blob: fa3c30a3d50af5e0916637c54033cb044ac37648 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
when:
  event:
  - deployment
  - cron

matrix:
  include:
    - ARCH: amd64
      DOCKER_ARCH: amd64
      TARGET: x86_64-unknown-linux-musl
    - ARCH: i386
      DOCKER_ARCH: "386"
      TARGET: i686-unknown-linux-musl
    - ARCH: arm64
      DOCKER_ARCH: arm64
      TARGET: aarch64-unknown-linux-musl
    - ARCH: arm
      DOCKER_ARCH: arm
      TARGET: armv6l-unknown-linux-musleabihf

steps:
  - name: build
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.${ARCH}.release --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA}

  - name: check is static binary
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-build --no-build-output --attr pkgs.${ARCH}.release --argstr git_version ${CI_COMMIT_TAG:-$CI_COMMIT_SHA}
      - nix-shell --attr rust --run "./script/not-dynamic.sh result-bin/bin/garage"

  - name: integration tests
    image: nixpkgs/nix:nixos-22.05
    commands:
      - nix-shell --attr integration --run ./script/test-smoke.sh || (cat /tmp/garage.log; false)
    when:
      - matrix:
          ARCH: amd64
      - matrix:
          ARCH: i386

  - name: push static binary
    image: nixpkgs/nix:nixos-22.05
    environment:
      TARGET: "${TARGET}"
    secrets:
      - source: garagehq_aws_access_key_id
        target: AWS_ACCESS_KEY_ID
      - source: garagehq_aws_secret_access_key
        target: AWS_SECRET_ACCESS_KEY
    commands:
      - nix-shell --attr release --run "to_s3"

  - name: docker build and publish
    image: nixpkgs/nix:nixos-22.05
    environment:
      DOCKER_PLATFORM: "linux/${DOCKER_ARCH}"
      CONTAINER_NAME: "dxflrs/${DOCKER_ARCH}_garage"
    secrets:
      - docker_auth
    commands:
      - mkdir -p /root/.docker
      - echo $DOCKER_AUTH > /root/.docker/config.json
      - export CONTAINER_TAG=${CI_COMMIT_TAG:-$CI_COMMIT_SHA}
      - nix-shell --attr release --run "to_docker"