There are two components to using GitHub Actions that we'll cover:
- the action itself
- a workflow that uses action(s)
A workflow can contain many actions. Each action has its own purpose. We'll put the files relating to the action in their own directories.
Actions come in two types: container actions and JavaScript actions.
Docker container actions allow the environment to be packaged with the GitHub Actions code and can only execute in the GitHub-Hosted Linux environment.
JavaScript actions decouple the GitHub Actions code from the environment allowing faster execution but accepting greater dependency management responsibility.
Our action will use a Docker container so it will require a Dockerfile
. Let's add it now. We won't discuss what each line means in detail, but the important thing to know is that the action will be executed in an environment defined by this file.
-
Create a file titled
action-a/Dockerfile
by [using this quick link]({{ dockerfileUrl }}) or manually:- Create a new branch. Branches should be named intentionally, so a good name for this branch could be
first-action
. - On the new branch, create a directory:
action-a
. Note: If you're working on GitHub.com, you can create a directory and a file at the same time by naming the fileaction-a/Dockerfile
. - In the
action-a
directory, create a file titledDockerfile
.
- Create a new branch. Branches should be named intentionally, so a good name for this branch could be
-
Fill the
Dockerfile
with the content below:FROM debian:9.5-slim ADD entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]
-
Commit your file
- If you're working locally, you will also need stage your file and to push the branch to GitHub.
-
Open a pull request with your new branch against
main