Really try fixing url #395
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: CI/CD | |
on: | |
pull_request: | |
branches: | |
- "main" | |
- "dev" | |
push: | |
branches: | |
- "main" | |
- "dev" | |
release: | |
types: [published] | |
jobs: | |
test_frontend: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./web | |
strategy: | |
matrix: | |
node-version: [16.x] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install | |
run: yarn | |
- name: Test | |
run: yarn run test | |
env: | |
CI: true | |
- uses: ravsamhq/notify-slack-action@v2 | |
if: always() | |
with: | |
status: ${{ job.status }} | |
notification_title: "${{github.sha}} has {status_message}" | |
message_format: "{emoji} *{job}* {status_message}" | |
footer: "<{repo_url}|{repo}> | <{run_url}|View job>" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
test_functions: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
- name: Install dependencies | |
run: pip install -r requirements.txt -r requirements-dev.txt | |
- name: Test | |
run: python -m pytest | |
working-directory: backend | |
- uses: ravsamhq/notify-slack-action@v2 | |
if: always() | |
with: | |
status: ${{ job.status }} | |
notification_title: "${{github.sha}} has {status_message}" | |
message_format: "{emoji} *{job}* {status_message}" | |
footer: "<{repo_url}|{repo}> | <{run_url}|View job>" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
code-style: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
- uses: pre-commit/[email protected] | |
- uses: ravsamhq/notify-slack-action@v2 | |
if: always() | |
with: | |
status: ${{ job.status }} | |
notification_title: "${{github.sha}} has {status_message}" | |
message_format: "{emoji} *{job}* {status_message}" | |
footer: "<{repo_url}|{repo}> | <{run_url}|View job>" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
build-and-deploy-web-app: | |
runs-on: ubuntu-latest | |
needs: test_frontend | |
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/release') | |
defaults: | |
run: | |
working-directory: ./web | |
strategy: | |
matrix: | |
node-version: [16.x] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: Install | |
run: yarn | |
- name: Build dev deployment | |
if: github.ref == 'refs/heads/main' | |
run: yarn run build | |
env: | |
API_KEY_DIGITRANSIT: ${{ secrets.API_KEY_DIGITRANSIT }} | |
API_KEY_NLS: ${{ secrets.API_KEY_NLS }} | |
TILESERVER_URL: ${{ secrets.TILESERVER_URL }} | |
NLS_TILESERVER_URL: ${{ secrets.NLS_TILESERVER_URL }} | |
CITIES: "'Kangasala','Lempäälä','Nokia','Orivesi','Pirkkala','Tampere','Vesilahti','Ylöjärvi'" | |
- name: Deploy app build to dev S3 bucket | |
if: github.ref == 'refs/heads/main' | |
run: aws s3 sync ./dist/ s3://${{ secrets.AWS_BUCKET_NAME }} --delete | |
- name: Report to slack | |
if: github.ref == 'refs/heads/main' | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "${{github.sha}} deployed to dev frontend" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Build production deployment | |
if: startsWith(github.ref, 'refs/tags/release') | |
run: yarn run build | |
env: | |
API_KEY_DIGITRANSIT: ${{ secrets.API_KEY_DIGITRANSIT }} | |
API_KEY_NLS: ${{ secrets.API_KEY_NLS }} | |
TILESERVER_URL: ${{ secrets.TAMPERE_TILESERVER_URL }} | |
NLS_TILESERVER_URL: ${{ secrets.TAMPERE_NLS_TILESERVER_URL }} | |
CITIES: "'Kangasala','Lempäälä','Nokia','Orivesi','Pirkkala','Tampere','Vesilahti','Ylöjärvi'" | |
DISABLED_LAYERS: "Roskikset;Penkit ja pöydät" | |
- name: Deploy app build to production S3 bucket | |
if: startsWith(github.ref, 'refs/tags/release') | |
run: aws s3 sync ./dist/ s3://${{ secrets.TAMPERE_AWS_BUCKET_NAME }} --delete | |
- name: Report to slack | |
if: startsWith(github.ref, 'refs/tags/release') | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "${{github.sha}} deployed to TAMPERE frontend" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
build-and-deploy-lambda-functions: | |
runs-on: ubuntu-latest | |
needs: test_functions | |
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/release') | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: "3.8" | |
- name: Build zip files for lambda | |
run: make build-lambda | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_LAMBDA_UPLOAD_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_LAMBDA_UPLOAD_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: Update dev lambda functions | |
if: github.ref == 'refs/heads/main' | |
run: make prefix=tarmo-dev update-lambda -C infra | |
- name: Report to slack | |
if: github.ref == 'refs/heads/main' | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "dev lambda functions updated to ${{github.sha}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Update dev database | |
if: github.ref == 'refs/heads/main' | |
run: make prefix=tarmo-dev migrate-db -C infra | |
- name: Report to slack | |
if: github.ref == 'refs/heads/main' | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "dev database updated to ${{github.sha}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Update production lambda functions | |
if: startsWith(github.ref, 'refs/tags/release') | |
run: make prefix=tarmo-tampere update-lambda -C infra | |
- name: Report to slack | |
if: startsWith(github.ref, 'refs/tags/release') | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "TAMPERE lambda functions updated to ${{github.sha}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Update production database | |
if: startsWith(github.ref, 'refs/tags/release') | |
run: make prefix=tarmo-tampere migrate-db -C infra | |
- name: Report to slack | |
if: startsWith(github.ref, 'refs/tags/release') | |
uses: slackapi/[email protected] | |
with: | |
payload: | | |
{ | |
"text": "TAMPERE database updated to ${{github.sha}}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |