File: e2e.yaml

package info (click to toggle)
gitsign 0.13.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,028 kB
  • sloc: makefile: 52; sh: 9
file content (117 lines) | stat: -rw-r--r-- 4,058 bytes parent folder | download | duplicates (2)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
name: E2E

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]
  workflow_dispatch:

jobs:
  e2e:
    runs-on: ubuntu-latest
    permissions:
      # The rest of these are sanity-check settings, since I'm not sure if the
      # org default is permissive or restricted.
      # See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
      # for more details.
      actions: none
      checks: none
      contents: read
      deployments: none
      id-token: none
      issues: none
      packages: none
      pages: none
      pull-requests: none
      repository-projects: none
      security-events: none
      statuses: none

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          persist-credentials: false

      - name: Set up Go
        uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0
        with:
          go-version-file: 'go.mod'
          check-latest: true

      - name: Get test OIDC token
        uses: sigstore-conformance/extremely-dangerous-public-oidc-beacon@main

      - name: export OIDC token
        run: |
          echo "SIGSTORE_ID_TOKEN=$(cat ./oidc-token.txt)" >> $GITHUB_ENV

      - name: e2e unit tests
        run: |
          set -e
          make e2e-test

      - name: Install Gitsign
        run: |
          set -e

          # Setup repo + tool
          make install-gitsign
          export PATH="$PATH:$GOPATH/bin"
          echo "PATH=${PATH}"
          whereis gitsign
          mkdir /tmp/git
          cd /tmp/git
          git init -b main .
          git config --global user.email "test@example.com"
          git config --global user.name "gitsign"
          git config --global gpg.x509.program gitsign
          git config --global gpg.format x509
          git config --global commit.gpgsign true

          # Verify tool is on our path
          gitsign -h
      - name: Test Sign and Verify commit
        run: |
          set -e

          # Sign commit
          git commit --allow-empty -S --message="Signed commit"

          # Verify commit
          echo "========== git verify-commit =========="
          git verify-commit HEAD

          echo "========== gitsign verify =========="
          gitsign verify \
            --certificate-github-workflow-repository="sigstore-conformance/extremely-dangerous-public-oidc-beacon" \
            --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
            --certificate-identity="https://github.com/sigstore-conformance/extremely-dangerous-public-oidc-beacon/.github/workflows/extremely-dangerous-oidc-beacon.yml@refs/heads/main"

          # Extra debug info
          git cat-file commit HEAD | sed -n '/-BEGIN/, /-END/p' | sed 's/^ //g' | sed 's/gpgsig //g' | sed 's/SIGNED MESSAGE/PKCS7/g' | openssl pkcs7 -print -print_certs -text
      - name: Test Sign and Verify commit - offline verification
        env:
          GITSIGN_REKOR_MODE: "offline"
        run: |
          set -e

          # Sign commit
          git commit --allow-empty -S --message="Signed commit"

          # Verify commit
          echo "========== git verify-commit =========="
          git verify-commit HEAD

          echo "========== gitsign verify =========="
          gitsign verify \
            --certificate-github-workflow-repository="sigstore-conformance/extremely-dangerous-public-oidc-beacon" \
            --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
            --certificate-identity="https://github.com/sigstore-conformance/extremely-dangerous-public-oidc-beacon/.github/workflows/extremely-dangerous-oidc-beacon.yml@refs/heads/main"

          # Extra debug info
          git cat-file commit HEAD | sed -n '/-BEGIN/, /-END/p' | sed 's/^ //g' | sed 's/gpgsig //g' | sed 's/SIGNED MESSAGE/PKCS7/g' | openssl pkcs7 -print -print_certs -text

      - name: Debug log
        if: failure()
        run: cat "${GITSIGN_LOG}"