# 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 ```` ## v5 ````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 }} # temp one just to get it "built" - name: "Deploy" uses: https://forgejo.skynet.ie/Skynet/actions/deploy_user@v5 with: ssh_key: ${{ secrets.KEY }} folder: "build" destination: "subfolder" ````