perf(SCC): Releasing SCC v2 Java SDK #199
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 clean | |
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: scccomm@in.ibm.com | |
GIT_COMMITTER_NAME: sccdeveloper | |
GIT_COMMITTER_EMAIL: scccomm@in.ibm.com | |
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 "scccomm@in.ibm.com" | |
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: scccomm@in.ibm.com | |
GIT_COMMITTER_NAME: sccdeveloper | |
GIT_COMMITTER_EMAIL: scccomm@in.ibm.com |