another different ssh flag #250
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 | |
on: [push] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: Build & Unit Test | |
strategy: | |
fail-fast: false | |
matrix: | |
dotnet-version: [ '8.0.x' ] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }} | |
uses: actions/[email protected] | |
with: | |
dotnet-version: ${{ matrix.dotnet-version }} | |
- name: Install Dependencies | |
run: dotnet restore Selector.Core.sln | |
- name: Build | |
run: dotnet build --configuration Debug --no-restore Selector.Core.sln | |
- name: Test | |
run: dotnet test --no-restore --verbosity normal Selector.Core.sln | |
build-MAUI: | |
runs-on: windows-latest | |
name: Build MAUI | |
needs: [build] # for ignoring bad builds | |
strategy: | |
fail-fast: false | |
matrix: | |
dotnet-version: [ '8.0.x' ] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }} | |
uses: actions/[email protected] | |
with: | |
dotnet-version: ${{ matrix.dotnet-version }} | |
- name: Build | |
run: dotnet build --configuration Debug Selector.MAUI\Selector.MAUI.csproj | |
build-Docker: | |
runs-on: ubuntu-latest | |
name: Build Containers | |
needs: [build, build-Js] # for ignoring bad builds | |
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to DockerHub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build CLI Container | |
uses: docker/build-push-action@v5 | |
with: | |
push: true | |
tags: | | |
sarsoo/selector-cli:latest | |
sarsoo/selector-cli:${{ github.ref_name }} | |
file: Dockerfile.CLI | |
- name: Build Web Container | |
uses: docker/build-push-action@v5 | |
with: | |
push: true | |
tags: | | |
sarsoo/selector-web:latest | |
sarsoo/selector-web:${{ github.ref_name }} | |
file: Dockerfile.Web | |
deploy: | |
runs-on: ubuntu-latest | |
name: Deploy | |
needs: [build-Docker] # for ignoring bad builds | |
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) | |
environment: | |
name: prod | |
url: https://selector.sarsoo.xyz | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Tailscale | |
uses: tailscale/github-action@v2 | |
with: | |
oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }} | |
oauth-secret: ${{ secrets.TS_OAUTH_SECRET }} | |
tags: tag:ci | |
- name: Deploy | |
run: ssh -o StrictHostKeyChecking=no aj@odb -t "cd selector/ && docker compose up -d --pull always" | |
build-Js: | |
runs-on: ubuntu-latest | |
name: Build Frontend | |
strategy: | |
fail-fast: false | |
matrix: | |
node: [21] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Node ${{ matrix.node }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install Node Packages | |
working-directory: ./Selector.Web | |
run: npm ci | |
- name: Compile Front-end | |
working-directory: ./Selector.Web | |
run: npm run build --if-present |