github.com/aliyun/credentials-go@v1.4.7/.github/workflows/go.yml (about) 1 name: Go 2 3 on: 4 push: 5 branches: [ master ] 6 pull_request: 7 branches: [ master ] 8 9 permissions: 10 id-token: write 11 12 jobs: 13 14 build: 15 runs-on: ubuntu-latest 16 strategy: 17 matrix: 18 go: ['1.13', '1.14', '1.15', '1.16', '1.17', '1.18', '1.19', '1.20', '1.21', '1.22'] 19 fail-fast: false 20 21 steps: 22 - uses: actions/checkout@v4 23 - name: Setup Go 24 uses: actions/setup-go@v5 25 with: 26 go-version: ${{ matrix.go }} 27 28 - name: Go Mod 29 run: go mod tidy 30 31 - name: Test 32 run: go test -race -coverprofile=coverage.txt -covermode=atomic ./credentials/... 33 34 - name: Upload coverage infomartion 35 uses: codecov/codecov-action@v4 36 with: 37 token: ${{ secrets.CODECOV_TOKEN }} 38 39 - name: Setup OIDC 40 run: npm install @actions/core@1.6.0 @actions/http-client 41 42 - name: Get Id Token 43 uses: actions/github-script@v7 44 id: idtoken 45 with: 46 script: | 47 const coreDemo = require('@actions/core'); 48 const idToken = await coreDemo.getIDToken('sts.aliyuncs.com'); 49 const fsx = require('fs/promises'); 50 await fsx.writeFile('/tmp/oidc_token', idToken); 51 52 - name: Integration Test 53 run: go test -v -timeout 120s ./integration/... 54 if: env.SUB_ALICLOUD_ACCESS_KEY != '' 55 env: 56 # for RAM role ARN 57 SUB_ALICLOUD_ACCESS_KEY: ${{ secrets.SUB_ALICLOUD_ACCESS_KEY }} 58 SUB_ALICLOUD_SECRET_KEY: ${{ secrets.SUB_ALICLOUD_SECRET_KEY }} 59 ALICLOUD_ROLE_ARN: ${{ secrets.ALICLOUD_ROLE_ARN }} 60 ALICLOUD_ROLE_SESSION_NAME: ${{ secrets.ALICLOUD_ROLE_SESSION_NAME }} 61 ALICLOUD_ROLE_SESSION_EXPIRATION: ${{ secrets.ALICLOUD_ROLE_SESSION_EXPIRATION }} 62 # for OIDC 63 ALIBABA_CLOUD_OIDC_PROVIDER_ARN: ${{ secrets.OIDC_PROVIDER_ARN }} 64 ALIBABA_CLOUD_OIDC_TOKEN_FILE: "/tmp/oidc_token" 65 ALIBABA_CLOUD_ROLE_ARN: ${{ secrets.OIDC_ROLE_ARN }}