Skip to content

Commit

Permalink
[SYSE-394 master] Fix test code base for Tyk-Analytics PRs (TykTechno…
Browse files Browse the repository at this point in the history
…logies#6583)

### **User description**
A PR has been created by to address the PRs on tyk-analytics checking
out the wrong base (base branch) when working on a pull-request over the
tyk-analytics repo.In this case developers would want to checkout the
HEAD of the branch instead of the BASE so they can have their new tests
in place for the PR.PR being worked out under QA board:
TykTechnologies/gromit#346


___

### **PR Type**
enhancement, tests


___

### **Description**
- Enhanced the release workflow by adding concurrency control to cancel
in-progress workflows for pull requests.
- Updated the Docker build-push-action version from v5 to v6 for
improved functionality.
- Introduced new steps to upload Playwright test reports to S3 and share
the report links in the summary.
- Modified environment variables and conditions for executing jobs,
including changes to the `VARIATION` and `BASE_REF` variables.
- Added conditions to ensure that certain jobs only run when the pull
request is not a draft.


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>release.yml</strong><dd><code>Enhance release workflow
with concurrency and reporting improvements</code></dd></summary>
<hr>

.github/workflows/release.yml

<li>Added concurrency control to cancel in-progress workflows for pull
<br>requests.<br> <li> Changed Docker build-push-action version from v5
to v6.<br> <li> Added steps to upload Playwright test reports to S3 and
share report <br>links.<br> <li> Modified environment variables and
conditions for job execution.


</details>


  </td>
<td><a
href="https://github.com/TykTechnologies/tyk/pull/6583/files#diff-87db21a973eed4fef5f32b267aa60fcee5cbdf03c67fafdc2a9b553bb0b15f34">+37/-19</a>&nbsp;
</td>

</tr>                    
</table></td></tr></tr></tbody></table>

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information

Co-authored-by: Gromit <policy@gromit>
  • Loading branch information
konrad-sol and Gromit authored Oct 2, 2024
1 parent c808608 commit db5d0b6
Showing 1 changed file with 45 additions and 20 deletions.
65 changes: 45 additions & 20 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# yamllint disable rule:line-length rule:truthy
---
name: Release

# Generated by: gromit policy

# Distribution channels covered by this workflow
Expand All @@ -10,11 +8,9 @@ name: Release
# - docker hub
# - devenv ECR
# - Cloudsmith

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

on:
# Trigger release every monday at midnight for master CI images
schedule:
Expand All @@ -28,13 +24,14 @@ on:
- 'v*'
env:
GOPRIVATE: github.com/TykTechnologies
VARIATION: prod
VARIATION: inverted
DOCKER_BUILD_SUMMARY: false
DOCKER_BUILD_RECORD_UPLOAD: false
# startsWith covers pull_request_target too
BASE_REF: ${{startsWith(github.event_name, 'pull_request') && github.base_ref || github.ref_name}}
jobs:
goreleaser:
if: github.event.pull_request.draft == false
name: '${{ matrix.golang_cross }}'
runs-on: ubuntu-latest-m
permissions:
Expand Down Expand Up @@ -87,9 +84,9 @@ jobs:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-${{ matrix.golang_cross }}-go-${{ hashFiles('**/go.sum') }}
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-${{ matrix.golang_cross }}-go-${{ hashFiles('**/go.sum') }}
${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
- name: Build
env:
NFPM_PASSPHRASE: ${{ secrets.SIGNING_KEY_PASSPHRASE }}
Expand Down Expand Up @@ -173,13 +170,12 @@ jobs:
latest=false
prefix=v
tags: |
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{version}}
labels: "org.opencontainers.image.title=tyk-gateway (distroless) \norg.opencontainers.image.description=Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols\norg.opencontainers.image.vendor=tyk.io\norg.opencontainers.image.version=${{ github.ref_name }}\n"
- name: build multiarch image
- name: push image to prod
if: ${{ matrix.golang_cross == '1.22-bullseye' }}
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: "dist"
platforms: linux/amd64,linux/arm64
Expand All @@ -191,14 +187,19 @@ jobs:
push: ${{ startsWith(github.ref, 'refs/tags') }}
tags: ${{ steps.tag_metadata.outputs.tags }}
labels: ${{ steps.tag_metadata.outputs.labels }}
- uses: actions/upload-artifact@v4
- name: save deb
uses: actions/upload-artifact@v4
if: ${{ matrix.golang_cross == '1.22-bullseye' }}
with:
name: deb
retention-days: 1
path: |
dist/*.deb
!dist/*PAYG*.deb
- uses: actions/upload-artifact@v4
!dist/*fips*.deb
- name: save rpm
uses: actions/upload-artifact@v4
if: ${{ matrix.golang_cross == '1.22-bullseye' }}
with:
name: rpm
retention-days: 1
Expand All @@ -207,6 +208,7 @@ jobs:
!dist/*PAYG*.rpm
!dist/*fips*.rpm
test-controller-api:
if: github.event.pull_request.draft == false
needs:
- goreleaser
runs-on: ubuntu-latest
Expand Down Expand Up @@ -302,21 +304,43 @@ jobs:
./dash-bootstrap.sh http://localhost:3000
docker compose -p auto -f pro-ha.yml -f deps_pro-ha.yml -f ${{ matrix.envfiles.db }}.yml -f ${{ matrix.envfiles.cache }}.yml --env-file versions.env --profile slave-datacenter up --quiet-pull -d
echo "$(cat pytest.env | grep USER_API_SECRET)" >> $GITHUB_OUTPUT
echo "ts=$(date +%s%N)" >> $GITHUB_OUTPUT
- uses: actions/checkout@v4
with:
repository: TykTechnologies/tyk-analytics
path: tyk-analytics
token: ${{ secrets.ORG_GH_TOKEN }}
fetch-depth: 1
fetch-depth: 0
sparse-checkout: tests/api
- name: Branch for test code
id: timestamp
- name: Choosing test code branch
working-directory: tyk-analytics/tests/api
run: |
# Generate report id
git fetch --no-tags --depth 1 origin "refs/heads/${BASE_REF}:refs/remotes/origin/${BASE_REF}"
git switch $BASE_REF
echo "ts=$(date +%s%N)" >> $GITHUB_OUTPUT
if [[ ${{ github.event_name }} == "release" ]]; then
echo "Checking out release tag..."
TAG_NAME=${{ github.event.release.tag_name }}
git checkout "$TAG_NAME"
fi
if [[ ${{ github.event_name }} == "pull_request" ]]; then
PR_BRANCH=${{ github.event.pull_request.head.ref }}
TARGET_BRANCH=${{ github.event.pull_request.base.ref }}
echo "Looking for PR_BRANCH:$PR_BRANCH or TARGET_BRANCH:$TARGET_BRANCH..."
if git rev-parse --verify "origin/$PR_BRANCH" >/dev/null 2>&1; then
echo "PR branch $PR_BRANCH exists. Checking out..."
git checkout "$PR_BRANCH"
elif git rev-parse --verify "origin/$TARGET_BRANCH" >/dev/null 2>&1; then
echo "Target branch $TARGET_BRANCH exists. Checking out..."
git checkout "$TARGET_BRANCH"
fi
fi
if [[ ${{ github.event_name }} == "push" ]]; then
PUSH_BRANCH=${{ github.ref_name }}
echo "Looking for PUSH_BRANCH:$PUSH_BRANCH..."
if git rev-parse --verify "origin/$PUSH_BRANCH" >/dev/null 2>&1; then
echo "Push branch $PUSH_BRANCH exists. Checking out..."
git checkout "$PUSH_BRANCH"
fi
fi
echo "Current commit: $(git rev-parse HEAD)"
- uses: actions/setup-python@v5
with:
cache: 'pip'
Expand Down Expand Up @@ -349,7 +373,7 @@ jobs:
id: metadata_report
if: always() && (steps.test_execution.conclusion != 'skipped')
env:
REPORT_NAME: ${{ github.repository }}_${{ github.run_id }}_${{ github.run_attempt }}-${{steps.timestamp.outputs.ts}}
REPORT_NAME: ${{ github.repository }}_${{ github.run_id }}_${{ github.run_attempt }}-${{steps.env_up.outputs.ts}}
METADATA_REPORT_PATH: metadata.toml
run: |
# Generate metadata report
Expand Down Expand Up @@ -392,6 +416,7 @@ jobs:
retention-days: 3
overwrite: true
test-controller-distros:
if: github.event.pull_request.draft == false
needs:
- goreleaser
runs-on: ubuntu-latest
Expand Down

0 comments on commit db5d0b6

Please sign in to comment.