[tech] Fix opening/closing times on frequency lines #166
Workflow file for this run
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: Continuous Integration | |
on: | |
push: | |
branches: [master] | |
tags: | |
- '*' | |
pull_request: | |
env: | |
SBX_ECR_REGISTRY: "769000229800.dkr.ecr.eu-west-1.amazonaws.com" | |
PRD_ECR_REGISTRY: "162230498103.dkr.ecr.eu-west-1.amazonaws.com" | |
REGION: eu-west-1 | |
ECR_IMAGE: datahub-common-transit_model | |
jobs: | |
aws_creds: | |
name: Get ECR Access | |
runs-on: [self-hosted, dataeng, sandbox] | |
outputs: | |
token: ${{ steps.ecr_token.outputs.token }} | |
steps: | |
- id: ecr_token | |
name: Get ECR Token | |
run: | | |
echo token=$(aws ecr get-login-password --region $REGION) >> $GITHUB_OUTPUT | |
rustfmt: | |
name: Rust fmt check | |
needs: aws_creds | |
runs-on: [self-hosted, dataeng, sandbox] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-rust-ci:latest | |
credentials: | |
username: AWS | |
password: ${{ needs.aws_creds.outputs.token }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Format | |
run: make format | |
- name: Failure Slack notif | |
if: failure() | |
run: | | |
curl -s -X POST -H "Content-Type: application/json" -d '${{ env.SLACK_TEXT }}' ${{ secrets.SLACK_CORE_TOOLS_TEAM_URL }} | |
env: | |
SLACK_TEXT: '{"attachments":[{ | |
"pretext": "`transit_model CI` requires your attention", | |
"text":" :warning: Rust fmt check failed","color":"#D00000", | |
"fields":[{"title":"Action URL","value": "https://github.com${{ github.action_path }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}]}]}' | |
clippy: | |
name: Clippy check | |
needs: aws_creds | |
runs-on: [self-hosted, dataeng, sandbox] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-rust-ci:latest-proj8.1.0 | |
credentials: | |
username: AWS | |
password: ${{ needs.aws_creds.outputs.token }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Lint | |
run: make lint | |
- name: Failure Slack notif | |
if: failure() | |
run: | | |
curl -s -X POST -H "Content-Type: application/json" -d '${{ env.SLACK_TEXT }}' ${{ secrets.SLACK_CORE_TOOLS_TEAM_URL }} | |
env: | |
SLACK_TEXT: '{"attachments":[{ | |
"pretext": "`transit_model CI` requires your attention", | |
"text":" :warning: Clippy check failed","color":"#D00000", | |
"fields":[{"title":"Action URL","value": "https://github.com${{ github.action_path }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}]}]}' | |
audit: | |
name: Security audit | |
needs: aws_creds | |
runs-on: [self-hosted, dataeng, sandbox] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-rust-ci:latest-proj8.1.0 | |
credentials: | |
username: AWS | |
password: ${{ needs.aws_creds.outputs.token }} | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Audit | |
run: | | |
cargo audit | |
- name: Failure Slack notif | |
if: failure() | |
run: | | |
curl -s -X POST -H "Content-Type: application/json" -d '${{ env.SLACK_TEXT }}' ${{ secrets.SLACK_CORE_TOOLS_TEAM_URL }} | |
env: | |
SLACK_TEXT: '{"attachments":[{ | |
"pretext": "`transit_model CI` requires your attention", | |
"text":" :warning: Security audit failed","color":"#D00000", | |
"fields":[{"title":"Action URL","value": "https://github.com${{ github.action_path }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}]}]}' | |
tests: | |
name: Tests | |
needs: aws_creds | |
runs-on: [self-hosted, dataeng, sandbox] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-rust-ci:latest-proj8.1.0 | |
credentials: | |
username: AWS | |
password: ${{ needs.aws_creds.outputs.token }} | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive # for tests/NeTEx | |
- name: Install xmllint | |
run: apt update && apt install --yes libxml2-utils | |
- name: Run tests with and without features | |
run: make test | |
- name: Failure Slack notif | |
if: failure() | |
run: | | |
curl -s -X POST -H "Content-Type: application/json" -d '${{ env.SLACK_TEXT }}' ${{ secrets.SLACK_CORE_TOOLS_TEAM_URL }} | |
env: | |
SLACK_TEXT: '{"attachments":[{ | |
"pretext": "`transit_model CI` requires your attention", | |
"text":" :warning: Tests failed","color":"#D00000", | |
"fields":[{"title":"Action URL","value": "https://github.com${{ github.action_path }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}]}]}' | |
build-n-push: | |
needs: [rustfmt, clippy, audit, tests] | |
if: github.event_name == 'push' | |
runs-on: [self-hosted, dataeng, sandbox] | |
steps: | |
- name: CleanUp | |
run: | | |
sudo chown -R $USER . | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
clean: false | |
- name: Login to Amazon ECR sandbox | |
env: | |
AWS_REGION: eu-west-1 | |
uses: aws-actions/amazon-ecr-login@v1 | |
- name: Login to Amazon ECR shared | |
env: | |
AWS_REGION: eu-west-1 | |
uses: aws-actions/amazon-ecr-login@v1 | |
with: | |
registries: 162230498103 | |
- name: Build and Push to SBX ECR | |
if: success() | |
run: | | |
docker build -t ${SBX_ECR_REGISTRY}/${ECR_IMAGE}:latest . | |
docker push ${SBX_ECR_REGISTRY}/${ECR_IMAGE}:latest | |
- name: Push release to Prod ECR | |
if: success() && startsWith(github.ref, 'refs/tags/') | |
run: | | |
TAG=${GITHUB_REF_NAME} | |
docker tag ${SBX_ECR_REGISTRY}/${ECR_IMAGE}:latest ${PRD_ECR_REGISTRY}/${ECR_IMAGE}:${TAG} | |
docker push ${PRD_ECR_REGISTRY}/${ECR_IMAGE}:${TAG} | |
- name: Failure Slack notif | |
if: failure() | |
run: | | |
curl -s -X POST -H "Content-Type: application/json" -d '${{ env.SLACK_TEXT }}' ${{ secrets.SLACK_CORE_TOOLS_TEAM_URL }} | |
env: | |
SLACK_TEXT: '{"attachments":[{ | |
"pretext": "`transit_model Publish` requires your attention", | |
"text":" :warning: Publish on AWS failed","color":"#D00000", | |
"fields":[{"title":"Action URL","value": "https://github.com${{ github.action_path }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}]}]}' |