127 lines
3.6 KiB
YAML
Raw Normal View History

2020-12-22 13:53:57 +01:00
name: basket-api
2020-12-22 13:45:30 +01:00
on:
2021-03-16 11:11:39 -05:00
workflow_dispatch:
2020-12-22 13:45:30 +01:00
push:
branches:
- dev
2020-12-24 15:32:03 +01:00
2020-12-22 13:45:30 +01:00
paths:
2021-01-26 12:26:05 +01:00
- src/BuildingBlocks/**
- src/Services/Basket/**
2020-12-22 13:53:57 +01:00
- .github/workflows/basket-api.yml
2020-12-24 10:08:56 +01:00
pull_request:
branches:
- dev
2021-01-24 22:01:48 +01:00
paths:
2021-01-26 12:26:05 +01:00
- src/BuildingBlocks/**
- src/Services/Basket/**
2021-01-24 22:01:48 +01:00
- .github/workflows/basket-api.yml
2020-12-22 13:45:30 +01:00
env:
2020-12-24 12:50:42 +01:00
SERVICE: basket-api
IMAGE: basket.api
2021-04-15 10:24:28 -05:00
DOTNET_VERSION: 5.0.x
2020-12-23 10:19:10 +01:00
2020-12-22 13:45:30 +01:00
jobs:
2020-12-24 10:44:05 +01:00
2020-12-22 13:45:30 +01:00
BuildContainersForPR_Linux:
2020-12-24 10:44:05 +01:00
runs-on: ubuntu-latest
2020-12-24 11:03:52 +01:00
if: ${{ github.event_name == 'pull_request' }}
2020-12-22 13:45:30 +01:00
steps:
2020-12-24 10:44:05 +01:00
- name: 'Checkout Github Action'
uses: actions/checkout@master
2021-04-15 10:50:19 -05:00
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Build and run unit tests
run: |
cd src
dotnet restore "eShopOnContainers-ServicesAndWebApps.sln"
cd Services/Basket/Basket.API
dotnet build --no-restore
cd -
cd Services/Basket/Basket.UnitTests
2021-04-15 11:10:41 -05:00
dotnet build --no-restore
dotnet test --no-build -v=normal
2021-04-15 10:50:19 -05:00
2020-12-24 12:50:42 +01:00
- name: Compose build ${{ env.SERVICE }}
run: sudo -E docker-compose build ${{ env.SERVICE }}
2020-12-24 10:44:05 +01:00
working-directory: ./src
2020-12-22 13:45:30 +01:00
shell: bash
env:
2020-12-24 10:44:05 +01:00
TAG: ${{ env.BRANCH }}
2020-12-24 15:24:41 +01:00
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
2020-12-24 10:44:05 +01:00
2020-12-22 13:45:30 +01:00
BuildLinux:
2020-12-22 17:12:21 +01:00
runs-on: ubuntu-latest
2020-12-22 13:45:30 +01:00
if: ${{ github.event_name != 'pull_request' }}
steps:
2020-12-22 16:42:30 +01:00
- name: 'Checkout Github Action'
uses: actions/checkout@master
2020-12-23 10:19:10 +01:00
2021-04-15 10:24:28 -05:00
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Build and run unit tests
run: |
2021-04-15 10:28:08 -05:00
cd src
2021-04-15 10:24:28 -05:00
dotnet restore "eShopOnContainers-ServicesAndWebApps.sln"
2021-04-15 11:02:21 -05:00
cd Services/Basket/Basket.API
2021-04-15 10:24:28 -05:00
dotnet build --no-restore
cd -
2021-04-15 11:02:21 -05:00
cd Services/Basket/Basket.UnitTests
2021-04-15 11:10:41 -05:00
dotnet build --no-restore
dotnet test --no-build -v=normal
2021-04-15 10:24:28 -05:00
2020-12-24 15:09:34 +01:00
- name: Enable experimental features for the Docker daemon and CLI
run: |
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
mkdir -p ~/.docker
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
sudo service docker restart
docker version -f '{{.Client.Experimental}}'
docker version -f '{{.Server.Experimental}}'
2020-12-23 17:46:09 +01:00
- name: Login to Container Registry
uses: docker/login-action@v1
with:
2020-12-24 15:24:41 +01:00
registry: ${{ secrets.REGISTRY_HOST }}
2020-12-23 17:46:09 +01:00
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
2020-12-23 10:19:10 +01:00
2020-12-24 11:03:52 +01:00
- name: Set branch name as env variable
run: |
currentbranch=$(echo ${GITHUB_REF##*/})
echo "running on $currentbranch"
echo "BRANCH=$currentbranch" >> $GITHUB_ENV
shell: bash
2020-12-24 14:38:09 +01:00
- name: Compose build ${{ env.SERVICE }}
run: sudo -E docker-compose build ${{ env.SERVICE }}
working-directory: ./src
shell: bash
env:
TAG: ${{ env.BRANCH }}
2020-12-24 15:24:41 +01:00
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
2020-12-23 10:19:10 +01:00
2020-12-24 14:38:09 +01:00
- name: Compose push ${{ env.SERVICE }}
run: sudo -E docker-compose push ${{ env.SERVICE }}
working-directory: ./src
shell: bash
env:
TAG: ${{ env.BRANCH }}
2020-12-24 15:24:41 +01:00
REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
2020-12-23 10:19:10 +01:00
2020-12-24 12:56:21 +01:00
- name: Create multiarch manifest
run: |
2020-12-24 15:32:03 +01:00
docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
2021-03-16 11:11:39 -05:00
shell: bash