Bump nanoid from 3.3.7 to 3.3.8 in /backend/servers/explorer-web #1572
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: Push on develop - Build, test, create docker images & push them to docker hub | |
on: | |
push: | |
jobs: | |
# ==================================================================================================================== | |
# Run unit tests. | |
unit_tests: | |
name: Unit tests | |
runs-on: ubuntu-latest | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
- name: build and run tests | |
run: | | |
mvn clean test | |
# ==================================================================================================================== | |
# Run integration tests. | |
integration_tests: | |
name: Integration tests | |
runs-on: ubuntu-latest | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
- name: build and run tests | |
run: | | |
mvn clean test -P integration | |
# ==================================================================================================================== | |
# Run docker tests. | |
docker_tests: | |
name: Docker tests | |
runs-on: ubuntu-latest | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
- name: Build docker images | |
run: | | |
mvn clean install -P release -DskipTests | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-batch/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-api/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-web/pom.xml | |
# ================================================================================================================ | |
- name: Run the docker compose with our images | |
run: | | |
docker compose up >> docker.logs 2>&1 & | |
sleep 60 | |
# ================================================================================================================ | |
# Checking request life cycle. | |
- name: Adding a request | |
id: addProofRequest | |
run: | | |
requestId=$(curl -H "Content-Type: application/json" \ | |
-d '{ "query": "mutation { createAddProofRequest(input: {proof: \"${{ secrets.UNKNOWN_ROYLLO_COIN_RAW_PROOF }}\"}) { requestId }}" }' \ | |
http://localhost:9090/graphql | jq -r '.data.createAddProofRequest.requestId') | |
echo "requestId=${requestId}" >> $GITHUB_OUTPUT | |
- name: Retrieving request status | |
id: requestByRequestId | |
run: | | |
sleep 90 | |
status=$(curl -H "Content-Type: application/json" \ | |
-d '{ "query": "{ requestByRequestId(requestId: \"${{ steps.addProofRequest.outputs.requestId }}\") { status }}" }' \ | |
http://localhost:9090/graphql | jq -r '.data.requestByRequestId.status') | |
echo "status=${status}" >> $GITHUB_OUTPUT | |
- name: Check if the request has been treated | |
if: ${{ steps.requestByRequestId.outputs.status != 'SUCCESS' }} | |
run: | | |
echo "Error - request status is ${{ steps.requestByRequestId.outputs.status }}" | |
cat docker.logs | |
exit 1 | |
- name: Retrieving the asset created by the request | |
id: assetByAssetId | |
run: | | |
name=$(curl -H "Content-Type: application/json" \ | |
-d '{ "query": "{ assetByAssetId(assetId: \"${{ secrets.UNKNOWN_ROYLLO_COIN_ASSET_ID }}\") { name }}" }' \ | |
http://localhost:9090/graphql | jq -r '.data.assetByAssetId.name') | |
echo "name=${name}" >> $GITHUB_OUTPUT | |
- name: Check if the asset has been created | |
if: ${{ steps.assetByAssetId.outputs.name != 'unknownRoylloCoin' }} | |
run: | | |
echo "Error - Asset '${{ steps.assetByAssetId.outputs.name }}' not found" | |
cat docker.logs | |
exit 1 | |
# ==================================================================================================================== | |
# Run code analysis. | |
code_analysis: | |
name: Code analysis | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
if: github.ref == 'refs/heads/development' | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
# Using CodeQL. | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v3 | |
with: | |
languages: java | |
- name: Build and package | |
run: | | |
mvn package -DskipTests | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v3 | |
# ==================================================================================================================== | |
# Docker images push to docker hub. | |
docker_hub_push: | |
name: Docker images push to docker hub | |
runs-on: ubuntu-latest | |
needs: [ unit_tests, integration_tests, docker_tests ] | |
if: github.ref == 'refs/heads/development' | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
- name: Build docker images | |
run: | | |
mvn clean install -P release -DskipTests | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-batch/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-api/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-web/pom.xml | |
# ================================================================================================================ | |
- name: Docker Hub login | |
uses: docker/login-action@v3.3.0 | |
with: | |
username: ${{ secrets.EXPLORER_DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.EXPLORER_DOCKER_HUB_PASSWORD }} | |
# ================================================================================================================ | |
- name: Push docker images to Docker hub | |
run: | | |
docker push royllo/explorer-batch:latest | |
docker push royllo/explorer-api:latest | |
docker push royllo/explorer-web:latest | |
# ==================================================================================================================== | |
# Docker images push to production. | |
production_push: | |
name: Docker images push to production | |
runs-on: ubuntu-latest | |
needs: [ unit_tests, integration_tests, docker_tests ] | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
# ================================================================================================================ | |
- name: Retrieve the sources | |
uses: actions/checkout@v4 | |
# ================================================================================================================ | |
- name: Java Setup | |
uses: actions/setup-java@v4.3.0 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# ================================================================================================================ | |
- name: Build docker images | |
run: | | |
mvn clean install -P release -DskipTests | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-batch/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-api/pom.xml | |
mvn spring-boot:build-image -P release -DskipTests -f backend/servers/explorer-web/pom.xml | |
# ================================================================================================================ | |
- name: Get release number | |
id: release | |
run: echo "version=$(mvn help:evaluate -D expression=project.version -q -D forceStdout)" >> $GITHUB_OUTPUT | |
# ================================================================================================================ | |
# Publish to Docker Hub. | |
- name: Docker Hub login | |
uses: docker/login-action@v3.3.0 | |
with: | |
username: ${{ secrets.EXPLORER_DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.EXPLORER_DOCKER_HUB_PASSWORD }} | |
# ================================================================================================================ | |
- name: Tag docker images | |
run: | | |
docker tag royllo/explorer-batch:latest royllo/explorer-batch:${{ steps.release.outputs.version }} | |
docker tag royllo/explorer-api:latest royllo/explorer-api:${{ steps.release.outputs.version }} | |
docker tag royllo/explorer-web:latest royllo/explorer-web:${{ steps.release.outputs.version }} | |
# ================================================================================================================ | |
- name: Push tagged images to Docker hub | |
run: | | |
docker push royllo/explorer-batch:${{ steps.release.outputs.version }} | |
docker push royllo/explorer-api:${{ steps.release.outputs.version }} | |
docker push royllo/explorer-web:${{ steps.release.outputs.version }} | |
# ================================================================================================================ | |
# Push to DigitalOcean Container Registry. | |
- name: Install doctl | |
uses: digitalocean/action-doctl@v2 | |
with: | |
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} | |
- name: Tag docker images | |
run: | | |
docker tag royllo/explorer-batch:latest registry.digitalocean.com/royllo/explorer-batch:production | |
docker tag royllo/explorer-api:latest registry.digitalocean.com/royllo/explorer-api:production | |
docker tag royllo/explorer-web:latest registry.digitalocean.com/royllo/explorer-web:production | |
- name: Push production images to DigitalOcean Container Registry | |
run: | | |
doctl registry login | |
docker push registry.digitalocean.com/royllo/explorer-batch:production | |
docker push registry.digitalocean.com/royllo/explorer-api:production | |
docker push registry.digitalocean.com/royllo/explorer-web:production |