fix: remove redundant background service process, slim Dockerfile #581
Workflow file for this run
This file contains hidden or 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: Deploy to ECR | |
| env: | |
| SOLANA_CLI_VERSION: 2.1.6 | |
| NODE_VERSION: 24.13.1 | |
| on: | |
| push: | |
| # Sequence of patterns matched against refs/tags | |
| tags: | |
| - "docker-*" # Push events to matching docker-<env>-*, i.e. docker-web-solana-monitor-0.0.1 | |
| jobs: | |
| build: | |
| name: Build Image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Free disk space | |
| run: | | |
| sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache | |
| sudo docker image prune -af | |
| df -h / | |
| - name: Check out code | |
| uses: actions/checkout@v2 | |
| - name: Set tag information | |
| run: | | |
| TAG=${GITHUB_REF#refs/tags/} # Extract tag name from ref | |
| echo "Tag name: $TAG" | |
| DOCKER_ENV=$(echo $TAG | cut -d'-' -f2) | |
| VERSION=$(echo $TAG | rev | cut -d'-' -f1 | rev) | |
| # Extract CONTAINER by removing DOCKER_ENV and VERSION, and the first and last dash | |
| CONTAINER=$(echo $TAG | sed "s/docker-$DOCKER_ENV-//" | sed "s/-$VERSION//" | sed 's/^-//' | sed 's/-$//') | |
| # Find the path of the docker directory by looking at docker-info.json | |
| CONTAINER_PATH=$(jq -r ".$DOCKER_ENV[\"$CONTAINER\"]" docker-info.json) | |
| echo "DOCKER_ENV: $DOCKER_ENV" | |
| echo "CONTAINER: $CONTAINER" | |
| echo "CONTAINER_PATH: $CONTAINER_PATH" | |
| echo "VERSION: $VERSION" | |
| echo "DOCKER_ENV=${DOCKER_ENV}" >> $GITHUB_ENV | |
| echo "VERSION=${VERSION}" >> $GITHUB_ENV | |
| echo "CONTAINER=${CONTAINER}" >> $GITHUB_ENV | |
| echo "CONTAINER_PATH=${CONTAINER_PATH}" >> $GITHUB_ENV | |
| - name: Configure Web AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v1 | |
| if: ${{ env.DOCKER_ENV == 'web' }} | |
| with: | |
| aws-access-key-id: ${{ secrets.WEB_ECR_ACCESS_KEY }} | |
| aws-secret-access-key: ${{ secrets.WEB_ECR_SECRET_KEY }} | |
| aws-region: us-east-1 | |
| - name: Configure Oracle AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v1 | |
| if: ${{ env.DOCKER_ENV == 'oracle' }} | |
| with: | |
| aws-access-key-id: ${{ secrets.ORACLE_ECR_ACCESS_KEY }} | |
| aws-secret-access-key: ${{ secrets.ORACLE_ECR_SECRET_KEY }} | |
| aws-region: us-east-1 | |
| - name: Configure Data AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v1 | |
| if: ${{ env.DOCKER_ENV == 'data' }} | |
| with: | |
| aws-access-key-id: ${{ secrets.DATA_ECR_ACCESS_KEY }} | |
| aws-secret-access-key: ${{ secrets.DATA_ECR_SECRET_KEY }} | |
| aws-region: us-east-1 | |
| - name: Login to Amazon ECR | |
| id: login-ecr | |
| uses: aws-actions/amazon-ecr-login@v1 | |
| with: | |
| registry-type: public | |
| - name: Build IDLs for JS service Docker builds | |
| if: startsWith(env.CONTAINER_PATH, './packages/') | |
| uses: ./.github/actions/build-anchor/ | |
| with: | |
| testing: false | |
| - uses: ./.github/actions/setup-ts/ | |
| if: startsWith(env.CONTAINER_PATH, './packages/') | |
| - name: Build idls package | |
| if: startsWith(env.CONTAINER_PATH, './packages/') | |
| run: pnpm turbo run build --filter=@helium/idls | |
| - name: Build, tag, and push image to Amazon ECR | |
| env: | |
| ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} | |
| ECR_REPOSITORY: ${{ env.CONTAINER }} | |
| CONTAINER_PATH: ${{ env.CONTAINER_PATH }} | |
| IMAGE_TAG: ${{ env.VERSION }} | |
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
| SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
| SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} | |
| run: | | |
| REGISTRY_ALIAS=$(aws ecr-public describe-registries | jq --raw-output '.registries[0].aliases[0].name') | |
| # JS services with turbo prune build from repo root | |
| # Other services (utils/*, geocoder) build from their own directory | |
| if grep -q "turbo prune" "$CONTAINER_PATH/Dockerfile" 2>/dev/null; then | |
| docker build \ | |
| --build-arg SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN \ | |
| --build-arg SENTRY_ORG=$SENTRY_ORG \ | |
| --build-arg SENTRY_PROJECT=$SENTRY_PROJECT \ | |
| --build-arg SENTRY_RELEASE=$ECR_REPOSITORY@$IMAGE_TAG \ | |
| -f $CONTAINER_PATH/Dockerfile \ | |
| -t $ECR_REGISTRY/$REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG . | |
| else | |
| docker build \ | |
| --build-arg SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN \ | |
| --build-arg SENTRY_ORG=$SENTRY_ORG \ | |
| --build-arg SENTRY_PROJECT=$SENTRY_PROJECT \ | |
| --build-arg SENTRY_RELEASE=$ECR_REPOSITORY@$IMAGE_TAG \ | |
| -t $ECR_REGISTRY/$REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG $CONTAINER_PATH | |
| fi | |
| docker push $ECR_REGISTRY/$REGISTRY_ALIAS/$ECR_REPOSITORY:$IMAGE_TAG |