87 lines
3.4 KiB
YAML
87 lines
3.4 KiB
YAML
name: Build and Test
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
# pull_request:
|
|
# branches: [main]
|
|
|
|
jobs:
|
|
determine_version:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
repo_name: ${{ steps.project_metadata.outputs.REPO_NAME }}
|
|
repo_version_hash: ${{ steps.project_metadata.outputs.REPO_VERSION_HASH }}
|
|
project_version: ${{ steps.project_metadata.outputs.PROJECT_VERSION }}
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node Environment
|
|
uses: actions/setup-node@v4
|
|
|
|
- name: Acquire Project Metadata
|
|
id: project_metadata
|
|
run: |
|
|
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
|
|
echo REPO_VERSION_HASH=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT
|
|
echo PROJECT_VERSION=$(npm pkg get version --workspaces=false | tr -d \") >> $GITHUB_OUTPUT
|
|
|
|
build_and_push:
|
|
runs-on: ubuntu-latest
|
|
needs: determine_version
|
|
steps:
|
|
- name: Checkout Obsidian Repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: caperren/obsidian
|
|
token: ${{ secrets.ACTIONS_TOKEN }}
|
|
path: obsidian
|
|
|
|
- name: Checkout caperren-com Repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: caperren-com
|
|
|
|
- name: Login to Docker Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: gitea.perren.cloud
|
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
|
password: ${{ secrets.ACTIONS_TOKEN }}
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Copy Website Obsidian Content
|
|
run: |
|
|
ls "${{ gitea.workspace }}/obsidian/00002 - Projects/Websites/caperren-com"
|
|
ls "${{ gitea.workspace }}/caperren-com/src/content"
|
|
rm -rf "${{ gitea.workspace }}/caperren-com/src/content"
|
|
ls "${{ gitea.workspace }}/caperren-com/src"
|
|
mv "${{ gitea.workspace }}/obsidian/00002 - Projects/Websites/caperren-com" "${{ gitea.workspace }}/caperren-com/src/content"
|
|
|
|
- name: Build and Push
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: caperren-com
|
|
push: true
|
|
tags: |
|
|
gitea.perren.cloud/caperren/${{ needs.determine_version.outputs.repo_name }}:${{ needs.determine_version.outputs.repo_version_hash }}
|
|
gitea.perren.cloud/caperren/${{ needs.determine_version.outputs.repo_name }}:${{ needs.determine_version.outputs.project_version }}
|
|
gitea.perren.cloud/caperren/caperren-com:latest
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: echo "Tests would go here"
|
|
# - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
|
|
# - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
|
|
# - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
|
|
# - name: Check out repository code
|
|
# uses: actions/checkout@v4
|
|
# - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
# - run: echo "🖥️ The workflow is now ready to test your code on the runner."
|
|
# - name: List files in the repository
|
|
# run: |
|
|
# ls ${{ gitea.workspace }}
|
|
# - run: echo "🍏 This job's status is ${{ job.status }}." |