196 lines
6.3 KiB
YAML
196 lines
6.3 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'refator-pipeline'
|
|
# - $default-branch
|
|
paths-ignore:
|
|
- 'VERSION'
|
|
- '.bumpversion.cfg'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
Init:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
token: ${{ secrets.ADMIN_TOKEN }}
|
|
|
|
- name: Extract branch name
|
|
uses: vazco/github-actions-branch-name@v1
|
|
id: branch
|
|
|
|
- name: Bump version
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install bumpversion
|
|
bumpversion patch
|
|
new_version=`cat VERSION`
|
|
echo "New version is: $new_version"
|
|
|
|
git config --global user.name "CI Build"
|
|
git config --global user.email "ci.build@philips.com"
|
|
git commit -am "Bump version $new_version"
|
|
git push --force
|
|
|
|
unit-test:
|
|
needs: [Init]
|
|
env:
|
|
COVER: true
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
|
|
- name: Check out code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up Go 1.16
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.16.x
|
|
id: go
|
|
|
|
- name: Get dependencies
|
|
run: |
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.36.0
|
|
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
chmod +x ./cc-test-reporter
|
|
|
|
- name: Verify Code Generation
|
|
run: |
|
|
make verify-generate
|
|
|
|
- name: Lint
|
|
run: |
|
|
make lint
|
|
|
|
- name: Build
|
|
run: |
|
|
make build
|
|
|
|
- name: Test
|
|
env:
|
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
run: |
|
|
./.github/workflows/test.sh
|
|
|
|
Blackduck:
|
|
needs: [Init]
|
|
runs-on: builder_blr
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: blackduck scan
|
|
run: powershell -ExecutionPolicy RemoteSigned -NoExit -File ${{ github.workspace }}\Build\PS\Invoke-BlackduckDetect.ps1 -SourcePath ${{ github.workspace }}
|
|
|
|
Fortify:
|
|
needs: [Init]
|
|
runs-on: builder_blr
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Fortify scan
|
|
run: powershell -ExecutionPolicy RemoteSigned -NoExit -File ${{ github.workspace }}\build\ps\Invoke-FortifyScan.ps1
|
|
|
|
Build:
|
|
needs: [Init]
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Import Secrets
|
|
id: secrets
|
|
uses: hashicorp/vault-action@v2.3.1
|
|
with:
|
|
url: ${{ secrets.VAULT_HOST }}
|
|
method: approle
|
|
roleId: ${{ secrets.VAULT_ROLE_ID }}
|
|
secretId: ${{ secrets.VAULT_SECRET_ID }}
|
|
exportEnv: true
|
|
secrets: |
|
|
devops/data/docker-repos/hsdp-edi endPoint | HSDP_DOCKER_REGISTRY ;
|
|
devops/data/docker-repos/hsdp-edi user | HSDP_DOCKER_USER ;
|
|
devops/data/docker-repos/hsdp-edi password | HSDP_DOCKER_PASSWORD ;
|
|
devops/data/github/users/sal-devops token | GITHUB_TOKEN ;
|
|
|
|
- name: Extract branch name
|
|
uses: vazco/github-actions-branch-name@v1
|
|
id: branch
|
|
|
|
- name: Set env variables
|
|
run: |
|
|
new_version=`cat VERSION`
|
|
echo "New version is: $new_version"
|
|
echo "VERSION=$new_version" >> "$GITHUB_ENV"
|
|
echo "CI_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:${new_version}-alpha" >> "$GITHUB_ENV"
|
|
echo "CI_LATEST_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:latest" >> "$GITHUB_ENV"
|
|
echo "BRANCH_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:${{ steps.branch.outputs.branch_name }}-${new_version}" >> "$GITHUB_ENV"
|
|
echo "RC_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:${new_version}-rc" >> "$GITHUB_ENV"
|
|
|
|
- name: Docker Build
|
|
run: |
|
|
make docker
|
|
|
|
- name: Docker login
|
|
run: |
|
|
docker login --username '${{ secrets.DOCKER_USER }}' --password '${{ secrets.DOCKER_PSWD }}' '${{ secrets.DOCKER_REPO }}'
|
|
|
|
- name: Docker tag
|
|
run: |
|
|
docker tag '${{ secrets.DOCKER_REPO }}'/oauth2-proxy:latest ${{ env.BRANCH_IMAGE }}
|
|
docker push ${{ env.BRANCH_IMAGE }}
|
|
|
|
- name: Docker Push
|
|
if: github.ref == 'refs/heads/edi-foundation-integration'
|
|
run: |
|
|
docker tag ${{ env.BRANCH_IMAGE }} ${{ env.CI_IMAGE }}
|
|
docker push ${{ env.CI_IMAGE }}
|
|
|
|
Deploy_And_GW_Integrated_Test:
|
|
needs: [Build, Blackduck, Fortify, unit-test]
|
|
if: github.ref == 'refs/heads/refator-pipeline'
|
|
uses: ./.github/workflows/api-gw-integrated-test.yaml
|
|
secrets:
|
|
VAULT_HOST: ${{ secrets.VAULT_HOST }}
|
|
VAULT_ROLE_ID: ${{ secrets.VAULT_ROLE_ID }}
|
|
VAULT_SECRET_ID: ${{ secrets.VAULT_SECRET_ID }}
|
|
|
|
Release:
|
|
if: github.ref == 'refs/heads/refator-pipeline'
|
|
needs: Deploy_And_GW_Integrated_Test
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Import Secrets
|
|
id: secrets
|
|
uses: hashicorp/vault-action@v2.3.1
|
|
with:
|
|
url: ${{ secrets.VAULT_HOST }}
|
|
method: approle
|
|
roleId: ${{ secrets.VAULT_ROLE_ID }}
|
|
secretId: ${{ secrets.VAULT_SECRET_ID }}
|
|
exportEnv: true
|
|
secrets: |
|
|
devops/data/docker-repos/hsdp-edi endPoint | HSDP_DOCKER_REGISTRY ;
|
|
devops/data/docker-repos/hsdp-edi user | HSDP_DOCKER_USER ;
|
|
devops/data/docker-repos/hsdp-edi password | HSDP_DOCKER_PASSWORD ;
|
|
|
|
- name: Set env variables
|
|
run: |
|
|
new_version=`cat VERSION`
|
|
echo "CI_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:${new_version}-alpha" >> "$GITHUB_ENV"
|
|
echo "CI_LATEST_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:latest" >> "$GITHUB_ENV"
|
|
echo "RC_IMAGE=${{ env.HSDP_DOCKER_REGISTRY }}/edi/edi-foundation-oauth2-proxy:${new_version}-rc" >> "$GITHUB_ENV"
|
|
|
|
- name: Login to Docker Repo
|
|
run: docker login ${{ env.HSDP_DOCKER_REGISTRY }} --username ${{ env.HSDP_DOCKER_USER }} --password ${{ env.HSDP_DOCKER_PASSWORD }}
|
|
|
|
- name: Docker Push
|
|
run: |
|
|
docker pull ${{ env.CI_IMAGE }}
|
|
docker tag ${{ env.CI_IMAGE }} ${{ env.RC_IMAGE }}
|
|
docker push ${{ env.RC_IMAGE }} |