Advertise new tube departures (#291) #552
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: Pipeline | |
on: [push] | |
jobs: | |
Test_DepartureBoard_API: | |
name: Test Departure Board API | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: '6.0.x' | |
- name: Build Departure Board with dotnet | |
run: dotnet build --configuration Release | |
- name: Run Departure Board Unit Tests | |
run: dotnet test | |
cypress-run: | |
name: Cypress Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Install NPM dependencies, cache them correctly | |
# and run all Cypress tests | |
- name: Cypress run | |
uses: cypress-io/github-action@v5 | |
with: | |
install-command: npm install | |
build: npm run ngcc | |
start: npm run start:for-cypress | |
wait-on: 'http://127.0.0.1:4200' | |
browser: chrome | |
working-directory: ./DepartureBoardWeb/ClientApp | |
node-version: '18' | |
env: | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
Build_Docker_Image: | |
name: Build Docker Image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 1 | |
- name: Extract branch name | |
shell: bash | |
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" | |
id: extract_branch | |
- name: Docker build | |
run: | | |
docker login docker.pkg.github.com -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" | |
docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD" | |
docker build -t docker.pkg.github.com/benfl3713/departureboard/departure-board:latest . | |
env: | |
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Docker Publish | |
if: github.ref == 'refs/heads/master' | |
run: | | |
docker push docker.pkg.github.com/benfl3713/departureboard/departure-board:latest | |
docker tag docker.pkg.github.com/benfl3713/departureboard/departure-board:latest benfl3713/departure-board:latest | |
docker push benfl3713/departure-board:latest | |
DeployLambda: | |
name: Deploy to AWS Lambda | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Create Lambda Zip | |
run: | | |
cd DepartureBoardWeb | |
dotnet publish -c Release -o ./Lambda_deploy | |
cd Lambda_deploy | |
zip -r lambda.zip * | |
env: | |
IgnoreAngularProject: "true" | |
- name: Deploy Zip to Lambda Function | |
uses: appleboy/lambda-action@master | |
with: | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws_region: eu-west-2 | |
function_name: api-led-departure-board | |
zip_file: ./DepartureBoardWeb/Lambda_deploy/lambda.zip | |
memory_size: 512 | |
handler: DepartureBoardWeb::DepartureBoardWeb.LambdaEntryPoint::FunctionHandlerAsync | |
runtime: dotnet6 |