Revert lambda build script docker image name in favor of CI docker ve… #405
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 | |
with: | |
python-version: "3.10" | |
- 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 | |
with: | |
python-version: "3.10" | |
- 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.10" | |
- 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 }} |