Compare commits

..
1 Commits
Author SHA1 Message Date
Stedoss c521eb1917 Create simple CI workflow
Build & Test / build-frontend (pull_request) Failing after 45s
Build & Test / build-backend (pull_request) Failing after 0s
2026-07-28 09:50:37 +01:00
3 changed files with 6 additions and 12 deletions
+2 -4
View File
@@ -20,10 +20,10 @@ jobs:
dotnet-version: '10.0.x' dotnet-version: '10.0.x'
- name: Restore .NET Tools - name: Restore .NET Tools
run: dotnet tool restore - run: dotnet tool restore
- name: Check formatting - name: Check formatting
run: dotnet csharpier format . - run: dotnet csharpier format .
- name: Build - name: Build
run: dotnet build run: dotnet build
@@ -50,5 +50,3 @@ jobs:
- name: Test - name: Test
run: npm test run: npm test
env:
TZ: UTC
+2 -3
View File
@@ -20,7 +20,6 @@ curl --request POST \
* The Mission -> Launch relationship is defined as one-to-many. Originally chose to have a one-one relationship, but changed after deciding that there could be more than one launch per mission (and makes the frontend look a little more interesting). * The Mission -> Launch relationship is defined as one-to-many. Originally chose to have a one-one relationship, but changed after deciding that there could be more than one launch per mission (and makes the frontend look a little more interesting).
* For the UI, I chose to have a table *within a table*, with an accordion element. It seems to work well, however could get a little cluttered if there are more entities related to Missions in the future. * For the UI, I chose to have a table *within a table*, with an accordion element. It seems to work well, however could get a little cluttered if there are more entities related to Missions in the future.
* I chose to have the form as a pop-over on the table as the form was small enough, and it allows the user to have the context of the Mission they are adding the Launch to, which something like a modal doesn't do as well. * I chose to have the form as a pop-over on the table as the form was small enough, and it allows the user to have the context of the Mission they are adding the Launch to, which something like a modal doesn't do as well.
* Created a very simple CI workflow at `.gitea/workflows/build-test.yml` which runs on PR and `main` merges. You can find the runs at https://git.stevenjw.co.uk/StevenJW/mission-control/actions, the latest ones should be green.
## Where AI helped, and what I accepted or rejected ## Where AI helped, and what I accepted or rejected
@@ -88,9 +87,9 @@ Not every database call necessarily needs to go in a service, but most will be u
It's been quite a while since I've worked on Terraform, and I still think it's my preferred IaC platform (having used Ansible for a little bit now) - and I would like to dive back into it. A lot of the infrastructure already looks to be there! I'm also pretty happy to see the SPA be hosted by .NET, really cool. It's been quite a while since I've worked on Terraform, and I still think it's my preferred IaC platform (having used Ansible for a little bit now) - and I would like to dive back into it. A lot of the infrastructure already looks to be there! I'm also pretty happy to see the SPA be hosted by .NET, really cool.
#### Add more robust CI/CD pipelines #### Add CI/CD pipelines
I am a big fan of CI/CD pipelines. They are a great way to automate checking (ie. make code reviews faster and more focused), and deployment. Every project should have some pipelines, and it's nice to see formatters and linters for both frontend and backend! I have added a very basic one in `.gitea/workflows` for building, formatting and testing the backend and frontend. You can view the runs at https://git.stevenjw.co.uk/StevenJW/mission-control/actions. I am a big fan of CI/CD pipelines. They are a great way to automate checking (ie. make code reviews faster and more focused), and deployment. Every project should have some pipelines, and it's nice to see formatters and linters for both frontend and backend!
### Frontend ### Frontend
@@ -20,10 +20,7 @@ describe('dateUtils', () => {
it('returns readable date when datetime passed is in valid format', () => { it('returns readable date when datetime passed is in valid format', () => {
const date = toReadableDateTime('2026-07-27T23:27:22.1976394+00:00'); const date = toReadableDateTime('2026-07-27T23:27:22.1976394+00:00');
// Date invariants are annoying, test that we are getting back the locale in this case expect(date).toBe('27/07/2026, 23:27:22');
expect(date).toBe(
new Date('2026-07-27T23:27:22.1976394+00:00').toLocaleString(),
);
}); });
}); });
}); });