diff --git a/.github/actions/configure-goproxy/action.yml b/.github/actions/configure-goproxy/action.yml new file mode 100644 index 000000000..c9c825fc9 --- /dev/null +++ b/.github/actions/configure-goproxy/action.yml @@ -0,0 +1,36 @@ +name: configure-goproxy +author: s.breen +description: Sets the current Go module proxy based on the presence of a private proxy URL in secrets +inputs: + user: + description: Artifactory username secret name + required: false + default: "" + token: + description: Artifactory token secret name + required: false + default: "" + url: + description: Artifactory URL + required: false + default: "" +runs: + using: 'composite' + steps: + - name: Configure Go Proxy + id: configure-goproxy + shell: bash + run: | + if [[ -z "${{ inputs.user }}" ]] || \ + [[ -z "${{ inputs.token }}" ]] || \ + [[ -z "${{ inputs.url }}" ]] || \ + [[ "${{ github.event.pull_request.head.repo.fork }}" == 'true' ]] || + [[ "${{ startsWith(github.head_ref, 'dependabot-')}}" == 'true' ]] ; then + echo "No Artifactory secrets available - using direct GOPROXY" + GOPROXY_VALUE="direct" + else + echo "Development mode - using dev Artifactory" + GOPROXY_VALUE="https://${{ inputs.user }}:${{ inputs.token }}@${{ inputs.url }}" + fi + echo "GOPROXY=${GOPROXY_VALUE}" >> $GITHUB_ENV + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a270ad8d..864e24d53 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ permissions: env: NFPM_VERSION: 'v2.35.3' - GOPROXY: "https://${{ secrets.ARTIFACTORY_USER }}:${{ secrets.ARTIFACTORY_TOKEN }}@azr.artifactory.f5net.com/artifactory/api/go/f5-nginx-go-dev" + GOPROXY: "direct" jobs: proxy-sanity-check: @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-22.04 if: ${{ !github.event.pull_request.head.repo.fork && !startsWith(github.head_ref, 'dependabot-') }} env: - GOPROXY: "https://${{ secrets.ARTIFACTORY_USER }}:${{ secrets.ARTIFACTORY_TOKEN }}@azr.artifactory.f5net.com/artifactory/api/go/f5-nginx-go-dev" + GOPROXY: "https://${{ secrets.ARTIFACTORY_USER }}:${{ secrets.ARTIFACTORY_TOKEN }}@${{ secrets.ARTIFACTORY_URL_DEV }}" steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: @@ -46,6 +46,12 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -62,6 +68,12 @@ jobs: contents: write steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -79,6 +91,12 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -93,6 +111,12 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: fetch-tags: 'true' + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -124,6 +148,12 @@ jobs: version: "3.22" steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -168,6 +198,12 @@ jobs: version: "3.22" steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -219,6 +255,12 @@ jobs: release: "alpine" steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -280,6 +322,12 @@ jobs: path: "/nginx-plus/agent" steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -339,7 +387,13 @@ jobs: version: "mainline" release: "alpine" steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -400,7 +454,13 @@ jobs: release: "debian" path: "/nginx-plus/agent" steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod' @@ -446,6 +506,12 @@ jobs: contents: write steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Configure Go Proxy + uses: ./.github/actions/configure-goproxy + with: + user: ${{ secrets.ARTIFACTORY_USER }} + token: ${{ secrets.ARTIFACTORY_TOKEN }} + url: ${{ secrets.ARTIFACTORY_URL_DEV }} - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 with: go-version-file: 'go.mod'