Skip to content

Main

Main #15

Workflow file for this run

on:
push:
branches:
- 'main'
workflow_dispatch:
branches:
- 'main'
name: Main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
name: sos-backend
authToken: "${{ secrets.CACHIX_AUTH_TOKEN_JSYS23 }}"
- name: Create ssh private key file
env:
SSH_PRIVATE_KEY: "${{ secrets.SSH_PRIVATE_KEY }}"
run: |
touch ./ssh_private_key
chmod 600 ./ssh_private_key
echo "$SSH_PRIVATE_KEY" > ./ssh_private_key
- name: Create NixOS configuration from secrets
env:
ADMINISTRATOR_EMAIL: "${{ secrets.ADMINISTRATOR_EMAIL }}"
ADMIN_REPORT_SLACK_WEBHOOK: "${{ secrets.ADMIN_REPORT_SLACK_WEBHOOK }}"
STAGE_PROJECT_CREATION_PERIOD: "${{ secrets.MAIN_STAGE_PROJECT_CREATION_PERIOD }}"
GENERAL_PROJECT_CREATION_PERIOD: "${{ secrets.MAIN_GENERAL_PROJECT_CREATION_PERIOD }}"
COOKING_PROJECT_CREATION_PERIOD: "${{ secrets.MAIN_COOKING_PROJECT_CREATION_PERIOD }}"
COOKING_REQUIRING_PREPARATION_AREA_PROJECT_CREATION_PERIOD: "${{ secrets.MAIN_COOKING_REQUIRING_PREPARATION_AREA_PROJECT_CREATION_PERIOD }}"
FOOD_PROJECT_CREATION_PERIOD: "${{ secrets.MAIN_FOOD_PROJECT_CREATION_PERIOD }}"
run: |
cat << EOS > ./configuration.nix
{ ... }:
{
services.sos21-api-server = {
administratorEmail = "$ADMINISTRATOR_EMAIL";
adminReportSlackWebhook = "$ADMIN_REPORT_SLACK_WEBHOOK";
projectCreationPeriods = {
stage = "$STAGE_PROJECT_CREATION_PERIOD";
general = "$GENERAL_PROJECT_CREATION_PERIOD";
cooking = "$COOKING_PROJECT_CREATION_PERIOD";
cooking_requiring_preparation_area = "$COOKING_REQUIRING_PREPARATION_AREA_PROJECT_CREATION_PERIOD";
food = "$FOOD_PROJECT_CREATION_PERIOD";
};
};
}
EOS
- name: Deploy
uses: sohosai/sos-backend-infrastructure/actions/deploy-production@main
with:
target: api.online.sohosai.com
ssh_private_key: ./ssh_private_key
configurations: |
./nix/deployment/main.nix
./configuration.nix
- name: Delete ssh private key file
if: always()
run: rm -f ./ssh_private_key
tag:
name: Tag
runs-on: ubuntu-22.04
needs: deploy
steps:
- uses: actions/checkout@v3
with:
# GITHUB_TOKEN user cannot trigger another workflow
token: "${{ secrets.TAGGER_PAT }}"
- name: git tag
run: |
tag_name=v$(< ./VERSION)
git tag "$tag_name"
git push --tags