{"id":20759425,"url":"https://github.com/cubicrootxyz/workflows","last_synced_at":"2026-02-14T19:04:28.358Z","repository":{"id":251489180,"uuid":"837557195","full_name":"CubicrootXYZ/Workflows","owner":"CubicrootXYZ","description":"Collection of commonly used GitHub workflows","archived":false,"fork":false,"pushed_at":"2025-11-13T16:37:37.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T11:43:17.186Z","etag":null,"topics":["automation","build","cd","ci","docker","golang","image","jobs","lint","openapi","renovate","reusable","swagger","test","workflows"],"latest_commit_sha":null,"homepage":"","language":"Go","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/CubicrootXYZ.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-03T10:26:27.000Z","updated_at":"2025-11-13T16:37:06.000Z","dependencies_parsed_at":"2024-08-11T08:23:08.457Z","dependency_job_id":"8fdbb622-83c6-4971-860c-c232e87733f4","html_url":"https://github.com/CubicrootXYZ/Workflows","commit_stats":null,"previous_names":["cubicrootxyz/workflows"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/CubicrootXYZ/Workflows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicrootXYZ%2FWorkflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicrootXYZ%2FWorkflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicrootXYZ%2FWorkflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicrootXYZ%2FWorkflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CubicrootXYZ","download_url":"https://codeload.github.com/CubicrootXYZ/Workflows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CubicrootXYZ%2FWorkflows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29452619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["automation","build","cd","ci","docker","golang","image","jobs","lint","openapi","renovate","reusable","swagger","test","workflows"],"created_at":"2024-11-17T09:56:52.525Z","updated_at":"2026-02-14T19:04:28.337Z","avatar_url":"https://github.com/CubicrootXYZ.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workflows\n\nCollection of commonly used GitHub workflows.\n\n## Building images\n\nThis workflow will build and push images to Dockerhub. For any change an image with the commit SHA as tag will be published. For releases the release tag will be used to tag the image.\n\nProvide a `static_tag` so any commit on `main` branch will result in an image pushed with that tag. Can be used to provide a `beta` or `main` tagged image.\n\n```yaml\njobs:\n  build_image:\n    uses: CubicrootXYZ/Workflows/.github/workflows/build_image.yaml@v1.0.0\n    with:\n      docker_build_args: \"--no-cache\"\n      docker_file_path: \"./\"\n      image_name: \"example/image\"\n      vuln_scan: false # Uses grype to scan for vulnerabilities. \n    secrets:\n      dockerhub_user: ${{ secrets.DOCKERHUB_USERNAME }}\n      dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }}\n```\n\n## Golang\n\n### Code Quality\n\nTo ensure code quality use the provided `golang_quality` workflow. It runs multiple analysis tools.\n\n```yaml\npermissions:\n  # Required by golangci job to write annotations to the merge request.\n  contents: read\n  checks: write\n  \njobs:\n  golang_quality:\n    uses: CubicrootXYZ/Workflows/.github/workflows/golang_quality.yaml@v1.0.0\n    with:\n      workdir: \"golang/application/subfolder/\"\n```\n\n### Execute Tests\n\nTo execute golang tests use the provided `golang_test` workflow.\n\n```yaml\njobs:\n  golang_test:\n    uses: CubicrootXYZ/Workflows/.github/workflows/golang_test.yaml@v1.0.0\n    with:\n      workdir: \"tests/golang_test/\"\n      services: '{\"database\": {\"image\": \"mysql:8.0\", \"ports\": [\"3306:3306\"]}}'\n      env: '{\"TESTENV\": \"value\"}'\n```\n\n## Jinja\n\n### Validate generates are up to date\n\nAdd the following job to your CI to ensure `jinja` generated files are always up to date. Uses `makejinja` for templating.\n\n```yaml\njobs:\n  jinja:\n    uses: CubicrootXYZ/Workflows/.github/workflows/jinja.yaml@v1.0.0\n    with:\n      workdir: \"tests/jinja/\"\n```\n\n## OpenAPI\n\n### Render OpenAPI 2 specs with redoc\n\nRender an OpenAPI 2 spec with `redoc`. The spec file needs to be present in the given artifact. The rendered `index.html` will be added to the artifact `rendered-api-docu`.\n\n```yaml\njobs:\n  render:\n    uses: CubicrootXYZ/Workflows/.github/workflows/openapi2_render.yaml@v1.0.0\n    with:\n      spec_artifact_name: spec\n      spec_artifact_path: tests/openapi2/\n      spec_filename: petstore.yaml\n```\n\n### Generate OpenAPI 2 spec from golang source code\n\nGenerate OpenAPI 2 spec file based on `swag` compatible annotiations in the source code.\n\n```yaml\njobs:\n  build:\n    uses: CubicrootXYZ/Workflows/.github/workflows/openapi2_golang_build.yaml@v1.0.0\n    with:\n      entrypoint: cmd/main.go\n      workdir: ./\n```\n\n## GitHub Pages\n\nMake sure GitHub pages are activated and set to \"GitHub Action\" in your repository settings.\n\nAdd the following permissions to the `workflows` file:\n\n```yaml\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n```\n\nTo deploy an artifact to GitHub pages use the following job:\n\n```yaml\njobs:\n  pages_test:\n    uses: CubicrootXYZ/Workflows/.github/workflows/pages.yaml@v1.0.0\n    with:\n      artifact_name: static-html\n      artifact_path: index.html\n```\n\n## Renovate\n\nCreate a new access token and set it as `RENOVATE_TOKEN` repo secret. \n\n```yaml\njobs:\n  renovate_test:\n    uses: CubicrootXYZ/Workflows/.github/workflows/workflows/renovate.yaml@v1.0.0\n    with:\n      author: \"Max \u003cmax@users.noreply.github.com\u003e\"\n    secrets:\n      token: \"${{ secrets.RENOVATE_TOKEN }}\"\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubicrootxyz%2Fworkflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubicrootxyz%2Fworkflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubicrootxyz%2Fworkflows/lists"}