use setup in script tag #273
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: Build and tests | |
on: | |
push: | |
branches: | |
- "**" | |
tags-ignore: | |
- "*" | |
jobs: | |
server: | |
name: Backend build and integration tests | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup .NET SDK | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 7.0.x | |
- name: Restore NuGet packages | |
run: dotnet restore | |
- name: Build | |
run: dotnet build -c Release --no-restore | |
- name: Repare test environment | |
run: | | |
set -x | |
# Launch and prepare MySQL server | |
sudo systemctl start mysql.service | |
dotnet run -c Release --no-build --project server/src/Korga.Server -- database create --populate | |
# Install and configure OpenLDAP server | |
sudo apt-get update -yq | |
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends slapd | |
cat <<EOF | sudo debconf-set-selections | |
slapd slapd/internal/generated_adminpw password admin | |
slapd slapd/internal/adminpw password admin | |
slapd slapd/password2 password admin | |
slapd slapd/password1 password admin | |
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION | |
slapd slapd/domain string example.com | |
slapd shared/organization string Example Church | |
slapd slapd/purge_database boolean true | |
slapd slapd/move_old_database boolean true | |
slapd slapd/allow_ldap_v2 boolean false | |
slapd slapd/no_configuration boolean false | |
EOF | |
sudo dpkg-reconfigure -f noninteractive slapd | |
# .NET attempts to load a specific version of libldap: https://github.com/dotnet/runtime/issues/69456 | |
sudo ln -s /usr/lib/x86_64-linux-gnu/libldap-2.5.so.0 /usr/lib/x86_64-linux-gnu/libldap-2.4.so.2 | |
# Launch and prepare OpenLDAP server | |
sudo systemctl start slapd.service | |
dotnet run -c Release --no-build --project server/src/Korga.Server -- ldap create --organizational-unit | |
- name: Test | |
run: dotnet test -c Release --no-build --verbosity normal | |
webapp: | |
name: Frontend build | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup NodeJS | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Restore NPM packages | |
run: npm install | |
working-directory: webapp | |
- name: Build | |
run: npm run build | |
working-directory: webapp | |
docker: | |
name: Docker build | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/daniel-lerch/korga | |
tags: | | |
type=ref,event=branch | |
type=ref,event=pr | |
- name: Login to GitHub Container Registry | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |