Skip to content

TECH-7711: Migrate CI from CircleCI to GitHub Actions - #8

Merged
DevBaca merged 2 commits into
mainfrom
ci/migrate-to-github-actions
Jul 28, 2026
Merged

TECH-7711: Migrate CI from CircleCI to GitHub Actions#8
DevBaca merged 2 commits into
mainfrom
ci/migrate-to-github-actions

Conversation

@DevBaca

@DevBaca DevBaca commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Removes .circleci/config.yml
  • Adds .github/workflows/ci.yaml — matrix build/test on Elixir 1.19.2/OTP 28.1.1 and 1.18.4/OTP 27.3.4.4 (mirroring the CircleCI matrix), quality checks (format, credo, dialyzer) and docs/hex.build on the latest version only, plus a spelling/markdownlint job (cspell + markdownlint-cli2)
  • Adds .github/workflows/release.yaml — on v* tag push: verifies mix.exs/CHANGELOG/tag version alignment, creates the GitHub Release from CHANGELOG notes, publishes to Hex

Review fix

  • test job now sets MIX_ENV: test at the job level. Without it, mix compile --warnings-as-errors ran under Mix's default :dev env instead of :test, so warnings in test-support code (elixirc_paths(:test) includes test/support/) weren't caught the way CircleCI's identical compile step caught them.

Test Plan

  • GHA ci.yaml passes (both matrix legs + spelling/markdownlint)
  • lrzsz installs cleanly and LRZWriter's System.find_executable("lrz")/"rz" resolves on ubuntu-latest
  • HEX_API_WRITE_KEY secret added
  • Confirm release.yaml creates the GitHub Release and publishes to Hex on the next tag

Replaces .circleci/config.yml with two GHA workflows following the
pattern established by smartrent_castore, alloy_access_atlas, and
credo_binary_patterns for SmartRent Hex libraries: matrix build/test
across two Elixir/OTP pairs, quality checks and hex.build on the
latest version only, and a separate release workflow that verifies
version alignment, cuts the GitHub release, and publishes to Hex on
tag push.

HEX_API_WRITE_KEY secret still needs to be added before the next
tagged release can publish to Hex.
@socket-security

socket-security Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addederlef/​setup-beam@​54075bcc5e249e4758d363f27d099f55d843f12497100100100100
Addedactions/​cache@​55cc8345863c7cc4c66a329aec7e433d2d1c52a998100100100100

View full report

@socket-security

socket-security Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Please read and follow SmartRent's Secure Development policy to resolve these alerts.

Reach out to security@smartrent.com if you have any questions.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Medium
Network access: github actions/cache

Location: Package overview

From: .github/workflows/ci.yamlgithub/actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9

ℹ Read more on: This package | This alert | What is network access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore github/actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Network access: github erlef/setup-beam

Location: Package overview

From: .github/workflows/ci.yamlgithub/erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124

ℹ Read more on: This package | This alert | What is network access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore github/erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): github erlef/setup-beam is 62.0% likely to have a medium risk anomaly

Notes: No clear evidence of intentional malware/backdoor behavior is visible in this fragment. However, it performs high-risk operations: executing PowerShell with ExecutionPolicy 'Unrestricted' using string-built commands for archive extraction, and downloading/extracting third-party binaries without visible integrity/signature verification. This combination warrants security review and hardening (integrity checks; safer command execution; archive extraction safeguards against traversal/symlinks).

Confidence: 0.62

Severity: 0.66

From: .github/workflows/ci.yamlgithub/erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore github/erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@DevBaca DevBaca changed the title Migrate CI from CircleCI to GitHub Actions TECH-7711: Migrate CI from CircleCI to GitHub Actions Jul 27, 2026
@DevBaca
DevBaca requested a review from a team July 27, 2026 21:56
The compile/test steps ran under Mix's default :dev env instead of
:test, unlike the CircleCI config which set MIX_ENV=test globally.
This meant --warnings-as-errors wasn't validating test-support code
(elixirc_paths(:test) includes test/support), where CircleCI's
identical compile step did catch it.
@DevBaca
DevBaca requested a review from tylerfloyd July 27, 2026 22:03
@DevBaca
DevBaca merged commit 7899b88 into main Jul 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants