diff --git a/.bumpversion.cfg b/.bumpversion.cfg index cedae98c..cb8fa5b5 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,6 +1,6 @@ [bumpversion] -current_version = 1.0.7 +current_version = 1.0.11 commit = False tag = False -[bumpversion:file:VERSION] \ No newline at end of file +[bumpversion:file:VERSION] diff --git a/.github/workflows/api-gw-integrated-test.yaml b/.github/workflows/api-gw-integrated-test.yaml new file mode 100644 index 00000000..71254964 --- /dev/null +++ b/.github/workflows/api-gw-integrated-test.yaml @@ -0,0 +1,35 @@ +name: API-GW-INTEGRATED-TEST + +on: + workflow_call: + secrets: + VAULT_HOST: + required: true + VAULT_ROLE_ID: + required: true + VAULT_SECRET_ID: + required: true + +jobs: + Deploy: + runs-on: ubuntu-20.04 + steps: + - 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/github/users/sal-devops token | GITHUB_TOKEN ; + + - uses: convictional/trigger-workflow-and-wait@v1.6.1 + with: + owner: philips-internal + repo: hds-auth-gateway + github_token: ${{ env.GITHUB_TOKEN }} + workflow_file_name: cd.yaml + ref: terraform \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 827d8fd5..a073fc81 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,10 +5,41 @@ on: branches: - 'edi-foundation-integration' # - $default-branch - workflow_dispatch: + paths-ignore: + - 'VERSION' + - '.bumpversion.cfg' + pull_request: + branches: [ edi-foundation-integration ] + 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 + if: github.ref == 'refs/heads/edi-foundation-integration' + 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 @@ -47,12 +78,60 @@ jobs: run: | ./.github/workflows/test.sh - docker: + 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: Check out code - 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: | @@ -62,9 +141,59 @@ jobs: run: | docker login --username '${{ secrets.DOCKER_USER }}' --password '${{ secrets.DOCKER_PSWD }}' '${{ secrets.DOCKER_REPO }}' - - name: Docker tag & Push + - name: Docker tag run: | - docker tag '${{ secrets.DOCKER_REPO }}'/oauth2-proxy:latest '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:${{ github.sha }} - docker tag '${{ secrets.DOCKER_REPO }}'/oauth2-proxy:latest '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:latest - docker push '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:${{ github.sha }} - docker push '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:latest \ No newline at end of file + 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/edi-foundation-integration' + 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/edi-foundation-integration' + 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 }} \ No newline at end of file diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml deleted file mode 100644 index 6f4b3cf0..00000000 --- a/.github/workflows/pr.yaml +++ /dev/null @@ -1,64 +0,0 @@ -name: PR - -on: - pull_request: - branches: - - 'edi-foundation-integration' - # - $default-branch - -jobs: - build: - 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 - docker: - runs-on: ubuntu-20.04 - steps: - - - name: Check out code - uses: actions/checkout@v2 - - - 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 & Push - run: | - docker tag '${{ secrets.DOCKER_REPO }}'/oauth2-proxy:latest '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:prlatest - docker push '${{ secrets.DOCKER_REPO }}'/edi-foundation-oauth2-proxy:prlatest - - diff --git a/VERSION b/VERSION index f9cbc01a..86844988 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.7 \ No newline at end of file +1.0.11 \ No newline at end of file