{"id":30063898,"url":"https://github.com/extrange/actions","last_synced_at":"2025-09-07T15:43:52.620Z","repository":{"id":305072425,"uuid":"1021789796","full_name":"extrange/actions","owner":"extrange","description":"Common Github actions across projects","archived":false,"fork":false,"pushed_at":"2025-08-06T17:30:42.000Z","size":34,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-06T19:24:27.298Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/extrange.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-18T00:49:17.000Z","updated_at":"2025-08-06T17:30:45.000Z","dependencies_parsed_at":"2025-08-06T19:15:47.905Z","dependency_job_id":"ea1bb9c6-9c9a-47e5-ad10-50d9bdfcef52","html_url":"https://github.com/extrange/actions","commit_stats":null,"previous_names":["extrange/actions"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/extrange/actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrange%2Factions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrange%2Factions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrange%2Factions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrange%2Factions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/extrange","download_url":"https://codeload.github.com/extrange/actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extrange%2Factions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269366807,"owners_count":24405246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-08T04:49:14.647Z","updated_at":"2025-09-07T15:43:52.612Z","avatar_url":"https://github.com/extrange.png","language":"Nix","readme":"# Reusable Github Actions\n\n`devenv-test.yml`: Run all pre-commit hooks via [devenv].\n\n```yaml\n# .github/workflows/lint-and-test.yml\nname: Lint and Test\non:\n  push:\n    branches:\n      - main\n    paths-ignore:\n      - \"**.md\"\n\njobs:\n  devenv-test:\n    uses: extrange/actions/.github/workflows/devenv-test.yml@v1.6\n```\n\n`devenv-update.yml`: Update the [devenv] environment.\n\n```yaml\n# .github/workflows/devenv-update.yml\nname: \"Update devenv and flake lockfile\"\n\non:\n  workflow_dispatch:\n  schedule:\n    - cron: \"0 17 * * *\" # Runs daily at 01:00 SGT\n\njobs:\n  devenv-update:\n    uses: extrange/actions/.github/workflows/devenv-update.yml@v1.6\n    # Nested workflows can only have as much access as the caller workflow.\n    # https://docs.github.com/en/actions/reference/workflows-and-actions/reusable-workflows#access-and-permissions-for-nested-workflows\n    permissions:\n      contents: write\n```\n\n`build.yml`: Builds a Dockerfile (or a stage of it), caching via AWS ECR. Optionally, pushes the built image to ECR.\n\n```yaml\n# .github/workflows/build-and-deploy.yml\nname: Build, Push to ECR and Deploy to `dev` K8S Cluster\non:\n  push:\n    branches:\n      - main\n    paths-ignore:\n      - \"**.md\"\n\npermissions:\n  contents: write\n  id-token: write\n\njobs:\n  get-commit-metadata:\n    uses: extrange/actions/.github/workflows/commit-metadata.yml@v1.6\n\n  build:\n    uses: extrange/actions/.github/workflows/build.yml@v1.6\n    needs: get-commit-metadata\n    with:\n      ecr_repository: chatbot/russell-gpt-web # Change this\n      target: deployment\n      push: true\n      iam_role: ${{ vars.IAM_ROLE }}\n      aws_region: ${{ vars.AWS_REGION }}\n      build_args: |\n        COMMIT_SHA=${{ needs.get-commit-metadata.outputs.sha_short }}\n        COMMIT_TIMESTAMP=${{ needs.get-commit-metadata.outputs.timestamp }}\n      # You can add extra tags, e.g. the name of a pushed tag\n      extra_tags: |\n        ${{ github.ref_name }}\n```\n\n## Notes\n\n- Naming convention: `${language}-${workflow-name}`.\n  - For actions applicable to all languages, omit `${language}`.\n- The Github Free plan [doesn't support] organization-level secrets and variables in private repositories.\n- Called workflows only see the caller workflow repository's variables and secrets.\n- Environment variables set in the `env` context, defined in the called workflow, are [not accessible] in the `env` context of the caller workflow. Use `vars` instead.\n- Workflow files cannot [be in folders].\n\n[doesn't support]: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#creating-configuration-variables-for-an-organization\n[be in folders]: https://github.com/orgs/community/discussions/10773\n[not accessible]: https://docs.github.com/en/actions/sharing-automations/reusing-workflows#limitations\n[devenv]: https://devenv.sh\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrange%2Factions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fextrange%2Factions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextrange%2Factions/lists"}