At Codemancers, we believe every day is an opportunity to grow. This section is where our team shares bite-sized discoveries, technical breakthroughs and fascinating nuggets of wisdom we've stumbled upon in our work.
Mahesh BhosleDevOps Engineer
act utility can be used to simulate GitHub Actions locally, for testing the GitHub workflows.
To install act on Mac: brew install act To use the act navigate to the GitHub repo and use act -l to list all jobs To run any particular job: act -j job_id To run a job on any particular platform: act -j job_id -P <image>
[To run the jobs locally, docker must be running on the system.]
Soniya Rayabagi
square brackets [ ] indicate that the entire expression within them is optional example : FROM [--platform=<platform>] <image> [AS <name>] here , you can choose whether or not to include the --platform=<platform>
Satya
When ActiveJob is set to :inline it does not depends upon a scheduler anymore. Use perform_later as per your requirements and that will perform the job instantly.
Sachin KabadiSystem Analyst
If you face error as " Sprockets::Rails::Helper::AssetNotFound: The asset "tailwind.css" is not present in the asset pipeline " while running CI/CD pipeline or during deployment, then check whether you have add the the "app/assets/builds/*" in gitignore. Remove it and precompile assets again using "rake assets:precompile" or "rails assets:precompile". Make sure "tailwind.css" file exists in "app/assets/builds/" folder.
Satya
while running psql postgres if we face the below error: psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory That can be because of 2 reasons. 1. Your service isn't running , that can be fixed using brew services start postgresql@15 2. Your service is running , but there is some error like
Code
Bootstrap failed: 5: Input/output errorTry re-running the command as root for richer errors.Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/<user>/Library/LaunchAgents/[email protected]` exited with 5.
We can fix the 2nd error by removing the process pid file. • Step 1 -> brew services stop postgresql@15 • Step 2 -> rm -f /opt/homebrew/var/postgresql@15/postmaster.pid (apple sillicon install it at opt/homebrew) • Step 3 -> brew services start postgresql@15 These 3 steps should fix the error and we can check the info by running brew services info postgresql@15
Sachin KabadiSystem Analyst
While testing request spec in rails, configure host in your environment(development/test) :- Add below line in your "config/environment/test" file.
Ruby
config.hosts << "www.example.com"
Soniya Rayabagi
CIDR Block(Classless Inter-Domain Routing) Example : CIDR block: 192.168.1.0/28 This CIDR block represents all IP addresses between 192.168.1.0 and 192.168.1.15. The "/28" notation indicates that the first 28 bits of the IP address are fixed (192.168.1.0), and the remaining 4 bits (from 0 to 15) can vary, resulting in 16 possible IP addresses in the range. This range allows for 16 IP addresses, from 192.168.1.0 to 192.168.1.15.
Sujay
pg_dump commands: Standard pg_dump without DROP table queries: pg_dump -h your-hostname -p your-port -U your-username -d your-database-name -f output-file.sql``
pg_dump with DROP table queries (clean dump):
pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --clean -f output-file.sql
pg_dump for schema only:
pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --schema-only -f output-file.sql
pg_dump for data only:
pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --data-only -f output-file.sql
pg_dump for data only (no schema, INSERT commands only):
pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --data-only --inserts -f output-file.sql`
Satya
While using sidekiq-scheduler if your schedule file is named as sidekiq.yml make sure to add the schedule config entry. i.e :scheduler: -> :schedule . For eg:
Code
:scheduler: :schedule: fetch_user_info_from_slack: cron: '0 6 * * * Asia/Kolkata' class: FetchSlackUserInfoJob queue: 'default' description: 'This job fetches user info from slack and updates the database'
Soniya Rayabagi
AWS - ami If you want to create two instances in different regions within the same Terraform file, using the same AMI, you should first ensure that the AMI is available in both regions. If it's available in both regions (i.e.- "us-east-1" and "us-east-2") , you can proceed to use the same AMI for both instances. Otherwise, you should use two different AMIs. For example :
Code
provider "aws" { alias = "us-east-2" region = "us-east-2"}resource "aws_instance" "instance" { provider = aws.us-east-2 ami = "ami-id-1" instance_type = "t2.micro"}provider "aws" { alias = "us-east-1" region = "us-east-1"}resource "aws_instance" "instance1" { provider = aws.us-east-1 ami = "ami-id-2" instance_type = "t2.micro"}
Soniya Rayabagi
Git rebase is a command to reapply commits from one branch onto another, effectively rewriting the commit history. 1. Use git rebase main to start. 2. Resolve conflicts manually in files. 3. Add resolved files git add <file>. 4. Continue rebase git rebase --continue. 5. Finally, force-push changes git push <remote> <branch-name> —-force.
Neehar
Using the command “git push origin feature-branch -f” forces the remote repository to match the precise state of the local repository. However, it should be used with caution because it has the ability to overwrite remote modifications and cause data loss.
Neehar
Using git rebase command allows you to modify the history of your repository by changing a sequence of commits. It lets you to reorganise, modify, and merge commits. Git rebase is commonly used for resolving conflicts.
Soniya Rayabagi
The <<-EOF and EOF are Terraform's heredoc syntax, This syntax enables the creation of multiline strings in Terraform configuration files without the need to manually insert newline characters (\
).
Nisanth
To check if an instance is running using Terraform, you can use the following command: terraform show This command displays the current state of your infrastructure as recorded by Terraform. It will show information about the resources that Terraform has created, including details about the EC2 instance, such as its ID, IP address, and other attributes.
Nisanth
If we want to create an instance in different regions within the same Terraform file, we need to use provider aliases. In Terraform, a single file typically contains one default provider configuration for ‘aws.’ To work with multiple regions, we use provider aliases. Instead of having two separate provider blocks, we add aliases to them. For example:
Code
hclprovider "aws" { alias = "us-east-2" region = "us-east-2"}resource "aws_instance" "example" { provider = aws.us-east-2 ami = "ami-id" instance_type = "t2.micro"}provider "aws" { alias = "us-east-1" region = "us-east-1"}resource "aws_instance" "example1" { provider = aws.us-east-1 ami = "ami-id" instance_type = "t2.micro"}
This way, we can create instances in different regions using a single Terraform file, and each instance is associated with its respective region through the use of provider aliases
Soniya Rayabagi
how to troubleshoot the visibility of an AWS EC2 instance. discovered that instances may not appear in the console if deployed in a different region , verified instance existence by providing the correct region in the AWS console. example:
Code
provider "aws" { region = "us-east-2"}
Satya
if you are using ngrok to expose your localhost , you can serve that in a static domain. Every time you start ngrok it will use the same domain name