File: build.yml

package info (click to toggle)
ssh-tpm-agent 0.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 420 kB
  • sloc: makefile: 72
file content (66 lines) | stat: -rw-r--r-- 2,090 bytes parent folder | download
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
name: Build and upload binaries
on:
  release:
    types: [published]
  push:
  pull_request:
permissions:
  contents: read
jobs:
  build:
    name: Build binaries
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - {GOOS: linux, GOARCH: amd64}
          - {GOOS: linux, GOARCH: arm, GOARM: 6}
          - {GOOS: linux, GOARCH: arm64}
    steps:
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: 1.x
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Build binary
        run: |
          cp LICENSE "$RUNNER_TEMP/LICENSE"
          echo -e "\n---\n" >> "$RUNNER_TEMP/LICENSE"
          curl -L "https://go.dev/LICENSE?m=text" >> "$RUNNER_TEMP/LICENSE"
          VERSION="$(git describe --tags 2> /dev/null || echo "WIP")"
          DIR="$(mktemp -d)"
          mkdir "$DIR/ssh-tpm-agent"
          cp "$RUNNER_TEMP/LICENSE" "$DIR/ssh-tpm-agent"
          go build -o "$DIR/ssh-tpm-agent" -ldflags "-X main.Version=$VERSION" -trimpath ./cmd/...
          tar -cvzf "ssh-tpm-agent-$VERSION-$GOOS-$GOARCH.tar.gz" -C "$DIR" ssh-tpm-agent
        env:
          CGO_ENABLED: 0
          GOOS: ${{ matrix.GOOS }}
          GOARCH: ${{ matrix.GOARCH }}
          GOARM: ${{ matrix.GOARM }}
      - name: Upload workflow artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ssh-tpm-agent-binaries-${{ matrix.GOOS }}-${{ matrix.GOARCH }}
          path: ssh-tpm-agent-*
  upload:
    name: Upload release binaries
    if: github.event_name == 'release'
    needs: build
    permissions:
      contents: write
    runs-on: ubuntu-latest
    steps:
      - name: Download workflow artifacts
        uses: actions/download-artifact@v4
        with:
          pattern: ssh-tpm-agent-binaries-*
          merge-multiple: true
      - name: Upload release artifacts
        run: gh release upload "$GITHUB_REF_NAME" ssh-tpm-agent-*
        env:
          GH_REPO: ${{ github.repository }}
          GH_TOKEN: ${{ github.token }}