Update README.md #57
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: docker-amd64 | |
on: | |
push: | |
branches: | |
- "*" | |
tags: | |
- v* | |
pull_request: | |
env: | |
DOCKER_DATABASE_IMAGE_NAME: data-catalog-db | |
IMAGE_NAME: data-catalog | |
#variables related with the repository | |
REPOSITORY_MAIN_BRANCH: "master" | |
#variables related with the docker imager registry | |
DOCKER_IMAGE_REPOSITORY: mintproject | |
DOCKER_IMAGE_NAME: data-catalog | |
DOCKER_FILE: "Dockerfile" | |
jobs: | |
build: | |
strategy: | |
matrix: | |
architecture: [amd64] | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' | |
steps: | |
- name: Get branch name | |
id: branch-name | |
uses: tj-actions/branch-names@v6 | |
- uses: actions/checkout@v2 | |
- name: Create environment variable with the commit id | |
run: | | |
echo "DOCKER_TAG=${GITHUB_SHA}" >> $GITHUB_ENV | |
- name: Expose the commit id | |
id: exposeValue | |
run: | | |
echo "::set-output name=docker_tag::${{ env.DOCKER_TAG }}" | |
- name: enable qemu | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: API Build and push Docker image | |
uses: docker/[email protected] | |
with: | |
push: true | |
context: api | |
tags: ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_IMAGE_NAME }}:${{ steps.branch-name.outputs.current_branch }}, ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_IMAGE_NAME }}:${{ env.DOCKER_TAG }} | |
build-args: | | |
MAPGL_ACCESS_TOKEN=${{ secrets.MAPGL_ACCESS_TOKEN }} | |
platforms: linux/${{ matrix.architecture}} | |
- name: API Running on the default branch. | |
if: steps.branch-name.outputs.is_default == 'true' | |
uses: docker/[email protected] | |
with: | |
push: true | |
context: api | |
tags: ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_IMAGE_NAME }}:latest | |
build-args: | | |
MAPGL_ACCESS_TOKEN: ${{ secrets.MAPGL_ACCESS_TOKEN }} | |
platforms: linux/${{ matrix.architecture}} | |
- name: Database Build and push Docker image | |
uses: docker/[email protected] | |
with: | |
push: true | |
context: postgres | |
tags: ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_DATABASE_IMAGE_NAME }}:${{ steps.branch-name.outputs.current_branch }}, ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_DATABASE_IMAGE_NAME }}:${{ env.DOCKER_TAG }} | |
platforms: linux/${{ matrix.architecture}} | |
- name: Database Running on the default branch. | |
if: steps.branch-name.outputs.is_default == 'true' | |
uses: docker/[email protected] | |
with: | |
push: true | |
context: postgres | |
tags: ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_DATABASE_IMAGE_NAME }}:latest | |
platforms: linux/${{ matrix.architecture}} | |
security: | |
permissions: | |
contents: read | |
security-events: write | |
packages: write | |
name: "Scan vulnerabilities in the image" | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Run Trivy vulnerability scanner | |
uses: aquasecurity/trivy-action@master | |
with: | |
image-ref: ${{ env.DOCKER_IMAGE_REPOSITORY }}/${{ env.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.docker_tag }} | |
format: "template" | |
template: "@/contrib/sarif.tpl" | |
output: "trivy-results.sarif" | |
severity: ${{ env.VULNERABILITY_SCAN_LEVEL }} | |
exit-code: "0" | |
ignore-unfixed: "true" | |
- name: Upload Trivy scan results to GitHub Security tab | |
uses: github/codeql-action/upload-sarif@v2 | |
if: always() | |
with: | |
sarif_file: "trivy-results.sarif" | |
update: | |
needs: security | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create environment variable with the commit id | |
run: | | |
echo "DOCKER_TAG=${GITHUB_SHA}" >> $GITHUB_ENV | |
- name: Expose the commit id | |
id: exposeValue | |
run: | | |
echo "::set-output name=docker_tag::${{ env.DOCKER_TAG }}" | |
- name: Checkout MINT Instances Repository | |
uses: actions/checkout@v3 | |
with: | |
repository: mintproject/mint-instances | |
path: infrastructure | |
token: ${{ secrets.MINT_INSTANCES }} | |
ref: master | |
- name: Checkout MINT Chart Repository | |
uses: actions/checkout@v3 | |
if: github.ref == 'refs/heads/master' | |
with: | |
repository: mintproject/mint | |
path: mint-chart | |
token: ${{ secrets.MINT_INSTANCES }} | |
ref: main | |
- name: Update MINT ISI master | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: isi/values.yaml | |
propertyPath: "MINT.components.data_catalog.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update MINT ISI WIFIRE | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: wifire/values.yaml | |
propertyPath: "MINT.components.data_catalog.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update MINT ISI dev | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/dev' | |
with: | |
valueFile: isi-dev/values.yaml | |
propertyPath: "MINT.components.data_catalog.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update helm charts | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: helm/values.yaml | |
propertyPath: "components.data_catalog.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog" | |
repository: mintproject/mint | |
workDir: mint-chart/ | |
branch: main | |
token: ${{ secrets.MINT_INSTANCES }} | |
update-database: | |
needs: update | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create environment variable with the commit id | |
run: | | |
echo "DOCKER_TAG=${GITHUB_SHA}" >> $GITHUB_ENV | |
- name: Expose the commit id | |
id: exposeValue | |
run: | | |
echo "::set-output name=docker_tag::${{ env.DOCKER_TAG }}" | |
- name: Checkout MINT Instances Repository | |
uses: actions/checkout@v3 | |
with: | |
repository: mintproject/mint-instances | |
path: infrastructure | |
token: ${{ secrets.MINT_INSTANCES }} | |
ref: master | |
- name: Checkout MINT Chart Repository | |
uses: actions/checkout@v3 | |
if: github.ref == 'refs/heads/master' | |
with: | |
repository: mintproject/mint | |
path: mint-chart | |
token: ${{ secrets.MINT_INSTANCES }} | |
ref: main | |
- name: Update MINT ISI master | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: isi/values.yaml | |
propertyPath: "MINT.components.data_catalog_db.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog db" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update MINT ISI WIFIRE | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: wifire/values.yaml | |
propertyPath: "MINT.components.data_catalog_db.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog db" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update MINT ISI dev | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/dev' | |
with: | |
valueFile: isi-dev/values.yaml | |
propertyPath: "MINT.components.data_catalog_db.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog db" | |
repository: mintproject/mint-instances | |
workDir: infrastructure | |
branch: master | |
token: ${{ secrets.MINT_INSTANCES }} | |
- name: Update helm charts | |
uses: fjogeleit/yaml-update-action@main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
with: | |
valueFile: helm/values.yaml | |
propertyPath: "components.data_catalog_db.image.tag" | |
value: ${{ env.DOCKER_TAG }} | |
message: "Update data catalog db" | |
repository: mintproject/mint | |
workDir: mint-chart/ | |
branch: main | |
token: ${{ secrets.MINT_INSTANCES }} |