💾 Archived View for gem.arisamiga.rocks › post › mnemosyne.gmi captured on 2023-11-04 at 11:20:49. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-09-08)
-=-=-=-=-=-=-
So it's time!
As part of the
I have finished my first ever Amiga Application!
It's called **Mnemosyne** like the Greek Goddess of Memory.
Mnemosyne is an open-source disk utility application for AmigaOS 3.2, which can be used to show you what files and folders are taking up space on your disk.
It is written in C and utilizes NDK 3.2 and ReAction.
I mentioned this tool in my previous post
where I tried to fix an issue with Mnemosyne.
It is my first Amiga Application and I hope you like it!
Mnemosyne can help you with managing the space in your disks and can help you find files and folders that are taking up space.
You can download it from the Github Repository here:
https://github.com/Arisamiga/Mnemosyne
Or you should be able to download it from Aminet:
https://aminet.net/package/util/misc/Mnemosyne
As part of the release, I have created Actions in the Github Repository so I can automate the release process.
So when I create a new release it will automatically compile the application and attach it to the release.
This can be done by using the `on` keyword in the Actions.
on: release: types: [published]
This will run the action when a new release is published.
But one thing I am also doing is using a Docker Image to compile my code. Specifically
https://github.com/walkero-gr/docker4AmigaVBCC
This is a Docker Image which includes all the required tools to compile Amiga Applications It also has all the assigns for the AmigaOS 3.2 NDK.
To use a Docker Image in Github Actions you can use the `container` keyword.
container: image: walkero-gr/docker4amigavbc:latest-m68k
This will use the Docker Image to run the commands in the Actions.
We will need to also have a volume so we can do that by using the `volumes` keyword.
volumes: - '${{ github.workspace }}:/opt/code'
`${{ github.workspace }}` is a Github Actions variable that will be replaced with the path to the Github Workspace (ie. the repository).
This will mount the repository to the `/opt/code` directory in the Docker container so we will be able to have access to our code inside the container.
Then we can run commands like normal in the Actions.
- name: Compile run: | cd /opt/code make
Now to upload the release we can use the
action.
- name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: ./Mnemosyne.lha asset_name: Mnemosyne.lha asset_content_type: application/x-lzh-compressed
`${{secrets.GITHUB_TOKEN}}` is very special as you do now need to create a token for it. It is a special token that Github creates for you.
`${{ github.event.release.upload_url }}` is another Github Actions variable that will be replaced with the upload URL for the release. (The URL of the release that triggered the action)
`./Mnemosyne.lha` is the path to the file we want to upload.
`Mnemosyne.lha` is the name of the file we want to upload.
`application/x-lzh-compressed` is the content type of the file we want to upload.
If you want you can see the full action here:
https://github.com/Arisamiga/Mnemosyne/blob/main/.github/workflows/buildRelease.yml
I have also recently added so it will also upload the release .lha to Aminet as well!
I hope you like my first Amiga Application!
If you find any issues or you want to suggest a feature you can do so on the Github Repository here:
https://github.com/Arisamiga/Mnemosyne
And for more information about Mnemosyne, you can check out the Wiki!
https://github.com/Arisamiga/Mnemosyne/wiki
Hope you enjoyed this post and Thanks so much for reading :D