120 lines
3.1 KiB
Markdown
120 lines
3.1 KiB
Markdown
# actions
|
|
A collection of actions for the CI/CD on the Skynet Forgejo instance.
|
|
|
|
|
|
## deploy
|
|
Deploy is used to deploy services onto teh skynet cluster itself.
|
|
Primarily used for Skynet and Compsoc
|
|
|
|
### v2
|
|
```yaml
|
|
jobs:
|
|
# deploy it upstream
|
|
deploy:
|
|
# runs on teh default docker container
|
|
runs-on: docker
|
|
needs: [ build ]
|
|
steps:
|
|
- name: "Deploy to Skynet"
|
|
uses: https://forgejo.skynet.ie/Skynet/actions-deploy-to-skynet@v2
|
|
with:
|
|
input: 'compsoc_public'
|
|
token: ${{ secrets.API_TOKEN_FORGEJO }}
|
|
```
|
|
|
|
### v3
|
|
V3 moves it into its own folder in order to better organise the actions in this repo (instead of having a repo for each action)
|
|
```yaml
|
|
jobs:
|
|
# deploy it upstream
|
|
deploy:
|
|
# runs on teh default docker container
|
|
runs-on: docker
|
|
needs: [ build ]
|
|
steps:
|
|
- name: "Deploy to Skynet"
|
|
uses: https://forgejo.skynet.ie/Skynet/actions/deploy@v3
|
|
with:
|
|
input: 'compsoc_public'
|
|
token: ${{ secrets.API_TOKEN_FORGEJO }}
|
|
```
|
|
|
|
## Get LFS
|
|
Custom script that is used to get lfs objects from a repo.
|
|
``checkout@v4`` is intended to be able to do this, however it has a bug that prevents it doing so.
|
|
|
|
### v3
|
|
````yaml
|
|
jobs:
|
|
build:
|
|
# build it using teh base nixos system, helps with caching
|
|
runs-on: nix
|
|
steps:
|
|
# get the repo first
|
|
- uses: https://code.forgejo.org/actions/checkout@v4
|
|
- name: "Get LFS objects"
|
|
uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v3
|
|
with:
|
|
repository: ${{ gitea.repository }}
|
|
ref_name: ${{ gitea.ref_name }}
|
|
- name: "Build it locally"
|
|
run: nix build --verbose
|
|
````
|
|
|
|
|
|
### v6
|
|
````yaml
|
|
jobs:
|
|
build:
|
|
# build it using teh base nixos system, helps with caching
|
|
runs-on: docker
|
|
steps:
|
|
# get the repo first
|
|
- uses: https://code.forgejo.org/actions/checkout@v4
|
|
# Make sure all files are pulled down
|
|
- uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v6
|
|
with:
|
|
repository: ${{ gitea.repository }}
|
|
ref_name: ${{ gitea.ref_name }}
|
|
````
|
|
|
|
|
|
|
|
## Deploy User
|
|
### v6
|
|
```yaml
|
|
|
|
jobs:
|
|
build:
|
|
# build it using teh base nixos system, helps with caching
|
|
runs-on: docker
|
|
steps:
|
|
# get the repo first
|
|
- uses: https://code.forgejo.org/actions/checkout@v4
|
|
# Make sure all files are pulled down
|
|
- uses: https://forgejo.skynet.ie/Skynet/actions/get_lfs@v6
|
|
with:
|
|
repository: ${{ gitea.repository }}
|
|
ref_name: ${{ gitea.ref_name }}
|
|
# temp one just to get it "built"
|
|
- uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v6
|
|
with:
|
|
ssh_key: ${{ secrets.SSH_KEY }}
|
|
username: ${{ env.GITHUB_REPOSITORY_OWNER }}
|
|
folder: "src"
|
|
#destination: "subfolder"
|
|
```
|
|
|
|
## Docker Nix
|
|
This action is used to get nix into the docker user deploy system. For this to work, replace the curly brackets with your
|
|
desired Nix version.
|
|
### v7
|
|
```yaml
|
|
jobs:
|
|
build:
|
|
runs-on: docker
|
|
steps:
|
|
uses: https://forgejo.skynet.ie/Skynet/actions/docker_nix@v7
|
|
with:
|
|
nix_version: {insert_nix_version_here}
|
|
```
|