generated from inherentlee/11ty
97 lines
2.1 KiB
Markdown
97 lines
2.1 KiB
Markdown
|
|
# 11ty Template
|
||
|
|
|
||
|
|
Template repository for my 11ty projects.
|
||
|
|
|
||
|
|
## full drone/submodule setup from scratch
|
||
|
|
|
||
|
|
### 1. create repo
|
||
|
|
|
||
|
|
in heckin gitea, create destination repo.
|
||
|
|
|
||
|
|
### 2. add dronefile to source repo
|
||
|
|
|
||
|
|
Filename: `.drone.yml`, in root of repo. Note the `<vars>` to replace.
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
kind: pipeline
|
||
|
|
type: docker
|
||
|
|
name: default
|
||
|
|
|
||
|
|
steps:
|
||
|
|
- name: build
|
||
|
|
image: node:current
|
||
|
|
environment:
|
||
|
|
REPOSITORY: <dest-repo>
|
||
|
|
GIT_USER: <username>
|
||
|
|
GIT_TOKEN:
|
||
|
|
from_secret: GIT_TOKEN
|
||
|
|
commands:
|
||
|
|
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
|
||
|
|
- git submodule update --remote --init --merge
|
||
|
|
- npm install
|
||
|
|
- npm run build
|
||
|
|
- apt-get update && apt-get install -y rsync
|
||
|
|
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
|
||
|
|
- cd $REPOSITORY
|
||
|
|
- git checkout main
|
||
|
|
- git config --global --add safe.directory /drone/src/$REPOSITORY
|
||
|
|
- git add -A
|
||
|
|
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
|
||
|
|
- git push
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. create PAT
|
||
|
|
|
||
|
|
in heckin, go to settings > applications, and create a PAT with read & write permissions to repositories.
|
||
|
|
|
||
|
|
### 4. activate project in drone and add PAT
|
||
|
|
|
||
|
|
in drone, find your project and activate it.
|
||
|
|
|
||
|
|
in the settings, I chose to disable pull requests and forks. I set my runner timeout to 15m.
|
||
|
|
|
||
|
|
you can set your PAT either as a project secret or an organization secret. In either case call it `GIT_TOKEN`.
|
||
|
|
|
||
|
|
### 5. first commit to submodule
|
||
|
|
|
||
|
|
assuming we are committing the _site folder...
|
||
|
|
|
||
|
|
```sh
|
||
|
|
cp -r _site ../temp
|
||
|
|
cd ../temp
|
||
|
|
|
||
|
|
git init
|
||
|
|
git add -A
|
||
|
|
git commit -m "first"
|
||
|
|
|
||
|
|
git remote add origin <remote-url>
|
||
|
|
git push -u origin main
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6. add submodule to local repo
|
||
|
|
|
||
|
|
in root dir of local repo, add the submodule.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
git submodule add <remote-url>
|
||
|
|
```
|
||
|
|
|
||
|
|
if you used the SSH url, set it to the HTTPS url.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
git submodule set-url <dest-repo> <remote-url-https>
|
||
|
|
git add .gitmodules # the changes from submodule add are auto-staged, this config change isn't
|
||
|
|
```
|
||
|
|
|
||
|
|
commit your changes and push.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
git commit -m "add submodule"
|
||
|
|
```
|
||
|
|
|
||
|
|
(commit your dronefile changes too.)
|
||
|
|
|
||
|
|
### 7. profit
|
||
|
|
|
||
|
|
if it doesn't work, cry
|