Skip to content

SCC V2 Java SDK

SCC V2 Java SDK #192

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
if: "!startsWith(github.event.head_commit.message, 'chore') && !startsWith(github.ref, 'refs/tags/v')"
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: installing dependencies
run: mvn install
test:
runs-on: ubuntu-latest
env:
MVN_ARGS: "--settings build/.travis.settings.xml"
if: "!startsWith(github.event.head_commit.message, 'chore') && !startsWith(github.ref, 'refs/tags/v')"
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: building project
run: mvn clean compile
- name: running unit tests
run: mvn verify -fae -DskipITs $MVN_ARGS
- name: publishing code coverage report to codeclimate
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
run: |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
./cc-test-reporter before-build
build/publishCodeCoverage.sh
- name: running integration tests
env:
SCC_ENV: ${{ secrets.SCC_ENV }}
SECURITY_AND_COMPLIANCE_CENTER_API_IAM_PROFILE_ID: ${{ secrets.SCC_IAM_PROFILE_ID }}
run: build/testScript.sh
release:
runs-on: ubuntu-latest
needs: [verify, test]
if: "github.event_name == 'push' && github.ref == 'refs/heads/main' && !startsWith(github.event.head_commit.message, 'chore')"
steps:
- name: setting up extensions
uses: actions/checkout@v1
- name: setting up nodejs
uses: actions/setup-node@v2
with:
node-version: '18'
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: releasing using semantic-release
env:
GITHUB_TOKEN: ${{ secrets.ADMIN_TOKEN }}
GIT_AUTHOR_NAME: sccdeveloper
GIT_AUTHOR_EMAIL: [email protected]
GIT_COMMITTER_NAME: sccdeveloper
GIT_COMMITTER_EMAIL: [email protected]
run: |
pip install --user bumpversion
npm install @semantic-release/changelog
npm install @semantic-release/exec
npm install @semantic-release/git
npm install @semantic-release/github
rm -rf package.json
rm -rf package-lock.json
npx semantic-release
publish:
runs-on: ubuntu-latest
env:
MVN_ARGS: "--settings build/.travis.settings.xml"
if: "github.event_name == 'push' && contains(github.ref, 'refs/tags')"
steps:
- name: setting up extensions
uses: actions/checkout@v1
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: setting up gnupg for mvn
env:
GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }}
GPG_EXECUTABLE: ${{ secrets.GPG_EXECUTABLE }}
run: |
export GPG_TTY=$(tty)
echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --batch --passphrase $GPG_PASSPHRASE --import
echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --passphrase $GPG_PASSPHRASE --import-ownertrust
- name: publishing to maven central
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }}
GPG_EXECUTABLE: ${{ secrets.GPG_EXECUTABLE }}
run: |
export GPG_TTY=$(tty)
mvn deploy $MVN_ARGS -DskipITs -P central
documentation:
runs-on: ubuntu-latest
if: "github.event_name == 'push' && contains(github.ref, 'refs/tags')"
steps:
- name: setting up extensions
uses: actions/checkout@v1
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: generating javadocs
run: build/prepareJavadoc.sh
- name: deploying javadocs to gh-pages
run: |
git config --global user.email "[email protected]"
git config --global user.name "sccdeveloper"
git config --global user.password "${{ secrets.ADMIN_TOKEN }}"
cd v4/dist
git init
git add .
git commit -m "Deploy to GitHub pages"
git branch -m gh-pages
git remote add origin https://github.com/IBM/scc-java-sdk
git push -f origin gh-pages
env:
GITHUB_TOKEN: ${{ secrets.ADMIN_TOKEN }}
GIT_AUTHOR_NAME: sccdeveloper
GIT_AUTHOR_EMAIL: [email protected]
GIT_COMMITTER_NAME: sccdeveloper
GIT_COMMITTER_EMAIL: [email protected]