Build the digital-land database #1239
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: Build the digital-land database | |
on: | |
schedule: | |
- cron: 0 5 * * * | |
workflow_dispatch: null | |
env: | |
DLB_BOT_EMAIL: ${{ secrets.DLB_BOT_EMAIL }} | |
DLB_BOT_TOKEN: ${{ secrets.DLB_BOT_TOKEN }} | |
DLB_BOT_USERNAME: ${{ secrets.DLB_BOT_USERNAME }} | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Free up disk space | |
run: | | |
df -h | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /opt/ghc | |
echo | |
df -h | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.8 | |
- name: Configure git | |
run: | | |
git config user.email "${DLB_BOT_EMAIL}" | |
git config user.name "${DLB_BOT_USERNAME}" | |
git remote set-url origin https://${DLB_BOT_USERNAME}:${DLB_BOT_TOKEN}@github.com/${GITHUB_REPOSITORY}.git | |
git checkout ${GITHUB_REF_NAME} | |
- name: Update makerules | |
run: make makerules | |
- name: Commit updated makerules | |
run: make commit-makerules | |
- name: Install dependencies | |
run: make init | |
- name: Clobber dataset | |
run: make clobber | |
- name: Build dataset | |
run: make | |
# Development | |
- name: Configure Development AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
aws-access-key-id: ${{secrets.DEVELOPMENT_AWS_ACCESS_KEY_ID}} | |
aws-secret-access-key: ${{secrets.DEVELOPMENT_AWS_ACCESS_SECRET}} | |
aws-region: eu-west-2 | |
- name: Save datasets to Development S3 | |
env: | |
COLLECTION_DATASET_BUCKET_NAME: ${{secrets.DEVELOPMENT_DATA_S3_BUCKET}} | |
HOISTED_COLLECTION_DATASET_BUCKET_NAME: ${{secrets.DEVELOPMENT_DATA_S3_BUCKET}} | |
run: make save-dataset | |
# Staging | |
- name: Configure Staging AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
aws-access-key-id: ${{secrets.STAGING_AWS_ACCESS_KEY_ID}} | |
aws-secret-access-key: ${{secrets.STAGING_AWS_ACCESS_SECRET}} | |
aws-region: eu-west-2 | |
- name: Save datasets to Staging S3 | |
env: | |
COLLECTION_DATASET_BUCKET_NAME: ${{secrets.STAGING_DATA_S3_BUCKET}} | |
HOISTED_COLLECTION_DATASET_BUCKET_NAME: ${{secrets.STAGING_DATA_S3_BUCKET}} | |
run: make save-dataset | |
# Production | |
- name: Configure Production AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1-node16 | |
with: | |
aws-access-key-id: ${{secrets.PROD_AWS_ACCESS_KEY_ID}} | |
aws-secret-access-key: ${{secrets.PROD_AWS_ACCESS_SECRET}} | |
aws-region: eu-west-2 | |
- name: Save datasets to Prod S3 | |
env: | |
COLLECTION_DATASET_BUCKET_NAME: ${{secrets.PRODUCTION_DATA_S3_BUCKET}} | |
HOISTED_COLLECTION_DATASET_BUCKET_NAME: ${{secrets.PRODUCTION_DATA_S3_BUCKET}} | |
run: make save-dataset | |
check-digital-land-builder-errors: | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
if: always() && contains(join(needs.*.result, ','), 'failure') | |
steps: | |
- name: send failure notification | |
uses: slackapi/slack-github-action@v1 | |
env: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | |
with: | |
channel-id: 'planning-data-platform' | |
payload: | | |
{ | |
"text": "Digital Land Builder Has Failed", | |
"icon_emoji": ":warning:", | |
"username": "DigitalLandBuilder", | |
"blocks": [ | |
{ | |
"type": "header", | |
"text": { | |
"type": "plain_text", | |
"text": "Digital Land Builder Has Failed" | |
} | |
}, | |
{ | |
"type": "divider" | |
}, | |
{ | |
"type": "section", | |
"text": { | |
"type": "mrkdwn", | |
"text": "The report is available on <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|GitHub>" | |
} | |
} | |
] | |
} |