Skip to content

build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 in /portal/ui #316

build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 in /portal/ui

build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 in /portal/ui #316

name: Verify Build Workflow
on:
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README*'
- 'CODE_OF_CONDUCT*'
branches: [master, 3.x, 2.x]
pull_request:
paths-ignore:
- '.github/**'
- '.gitignore'
- 'LICENSE'
- 'README*'
- 'CODE_OF_CONDUCT*'
branches: [master, 3.x, 2.x]
defaults:
run:
shell: bash -ieo pipefail {0}
jobs:
build-verify:
name: Verify Build
runs-on: ubuntu-latest
if: github.repository_owner == 'Apiman'
outputs:
apiman-version: ${{ steps.apiman-version-data.outputs.apiman-version }}
is-snapshot-version: ${{ steps.apiman-version-data.outputs.is-snapshot-version }}
strategy:
matrix:
java: [ 11, 17 ]
integration-suite:
# Default, empty string to avoid setting
- name: Default configuration (JPA)
command: " "
# Servlet elasticsearch
- name: Servlet with Elasticsearch gateway
command: -Dapiman.gateway-test.config=servlet-es
# Vert.x in-memory gateway
- name: Vert.x with in-memory registry
command: -Dapiman.gateway-test.config=vertx3-mem
# Vert.x elasticsearch
- name: Vert.x with Elasticsearch registry
command: -Dapiman.gateway-test.config=vertx3-es
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Set up `mvn`
run: bash .github/workflows/support/set-mvn-location.sh
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: maven
- name: Get Apiman version
id: apiman-version-data
# Don't use mvn for `help:evaluate` command, output is messed up.
run: |
export APIMAN_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "apiman-version=$APIMAN_VERSION" >> $GITHUB_OUTPUT
if [[ "$APIMAN_VERSION" =~ "SNAPSHOT" ]]
then
echo "is-snapshot-version=true" >> $GITHUB_OUTPUT
else
echo "is-snapshot-version=false" >> $GITHUB_OUTPUT
fi
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache yarn cache
uses: actions/cache@v3
id: cache-yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Build Project (including /parent)
run: ./fastbuild.sh
- name: Run platform-specific integration tests (${{ matrix.integration-suite.name }})
run: mvn test install -Dmaven.javadoc.skip=true ${{ matrix.integration-suite.command }}
- name: Test Summary
uses: test-summary/action@v2
with:
paths: '**/target/surefire-reports/TEST-*.xml'
if: always()
- name: Upload test summary
uses: actions/upload-artifact@v3
with:
name: test-summary
path: test-summary.md
if: always()
e2e:
name: Cypress end-to-end testing
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Set up `mvn`
run: bash .github/workflows/support/set-mvn-location.sh
- name: Set up JDK 11 (for deploying assets, docker builds, etc)
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'
server-id: 'ossrh'
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- name: Build latest docker image locally & run Cypress
run: |
cd manager/ui/war
yarn install --frozen-lockfile
yarn apiman:rebuild
yarn ci
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_DASHBOARD_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-snapshots:
name: Publish master snapshot artifacts
runs-on: ubuntu-latest
env:
APIMAN_VERSION: ${{ needs.build-verify.outputs.apiman-version }}
IS_SNAPSHOT_VERSION: ${{ needs.build-verify.outputs.is-snapshot-version }}
# Export if version contains "SNAPSHOT" only
if: needs.build-verify.outputs.is-snapshot-version == 'true' && github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
needs: [ build-verify, e2e ]
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Set up `mvn`
run: bash .github/workflows/support/set-mvn-location.sh
- name: Tag/retag snapshot
run: |
echo "Version: $APIMAN_VERSION"
echo "Is Snapshot: $IS_SNAPSHOT_VERSION"
git config --global user.name "$GITHUB_ACTOR"
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git tag -a -f -m "Snapshot tag: $APIMAN_VERSION" $APIMAN_VERSION
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up JDK 11 (for deploying assets, docker builds, etc)
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'
server-id: 'ossrh'
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- name: 'Apiman Parent: Build and deploy POM/BOM & deploy to OSSRH Snapshots'
run: |
cd parent
mvn -B clean install
mvn -B deploy
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
- name: 'Apiman: Build and deploy main project to OSSRH Snapshots'
run: |
mvn -B deploy -DskipTests -Dmaven.test.skip=true
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Collecting release assets
run: |
mkdir -p /tmp/releases
cp containers/docker-compose/target/apiman-docker-compose-$APIMAN_VERSION.zip /tmp/releases/
cp distro/wildfly/target/apiman-distro-wildfly-$APIMAN_VERSION-overlay.zip /tmp/releases/
cp distro/vertx/target/apiman-distro-vertx-$APIMAN_VERSION.zip /tmp/releases/
cp distro/tomcat/target/apiman-distro-tomcat-$APIMAN_VERSION-overlay.zip /tmp/releases/
cp api-catalog/catalog.json /tmp/releases/apiman-api-catalog.json
cp plugins/plugin-registry/target/classes/registry.json /tmp/releases/apiman-plugin-registry.json
- name: Create/update GitHub snapshot release ${{ env.APIMAN_VERSION }}
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.APIMAN_VERSION }}
name: ${{ env.APIMAN_VERSION }}
body: |
Snapshot ${{ env.APIMAN_VERSION }}. **This is not a production-grade release!**
Each time a snapshot of this version is built in CI, the artifacts in this release will be replaced.
The date you see on the release itself may therefore be misleading.
You can refer to CHANGELOG.adoc in the attached release files if you want to see the changes when the
snapshot was created.
prerelease: true
files: |
CHANGELOG.adoc
/tmp/releases/*
publish-docker-images:
needs: [build-verify, publish-snapshots]
uses: apiman/apiman/.github/workflows/docker-test-release.yml@master
secrets: inherit
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
with:
apiman-version: ${{ needs.build-verify.outputs.apiman-version }}
push-to-repos: true
snapshot: ${{ needs.build-verify.outputs.is-snapshot-version == 'true' }}