User Tools

Site Tools


gitlab_satis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
gitlab_satis [2018/09/14 12:37] admingitlab_satis [2018/11/14 15:12] – [Configuration] admin
Line 9: Line 9:
   * <del>Download zips in Satis ??? So no key auth is required??!?!?</del> add ''archive: true'' and *.tar-Files for Tags will be saved in ''./dist/'' Folder. Branches still point to Git Repo.   * <del>Download zips in Satis ??? So no key auth is required??!?!?</del> add ''archive: true'' and *.tar-Files for Tags will be saved in ''./dist/'' Folder. Branches still point to Git Repo.
   * <del>Multiple packages, which one is preferred?</del> Depends on the loading order of your defined repositories in composer.json   * <del>Multiple packages, which one is preferred?</del> Depends on the loading order of your defined repositories in composer.json
 +  * FIXME Run pipeline only if it is not already running, pile up all requests and run it only once.
  
 **Features** **Features**
Line 43: Line 44:
 ===== Configuration ===== ===== Configuration =====
  
-Go to User Settings -> Access Tokens, give it a name and allow api scope. Hit "Create personal access token" and copy it to your configuration (arguments -> gitlab-token). See below ...+Go to Project -> Settings -> CI/CD -> Pipeline Triggers, give it a name and allow api scope. Hit "Add Trigger" and copy it to your configuration (arguments -> gitlab-token). See below ...
 ==== Using Environment variable ==== ==== Using Environment variable ====
  
Line 62: Line 63:
   homepage: "https://satis.example.org"   homepage: "https://satis.example.org"
   output: "satis.json"   output: "satis.json"
-  use-file-to-include: '.satisinclude'+  include-if-has-file: '.satisinclude'
   template: '/path/to/satis-template.example.json'   template: '/path/to/satis-template.example.json'
   archive: true   archive: true
Line 117: Line 118:
  
 payload = JSON.parse(STDIN.read) payload = JSON.parse(STDIN.read)
 +
  
 # Only run this code in case we are dealing with tag_push event # Only run this code in case we are dealing with tag_push event
Line 124: Line 126:
  shaFile = "#{temp}/gitlab-trigger.sha"  shaFile = "#{temp}/gitlab-trigger.sha"
  
- # Get hash values to compare + # Get refs to compare 
- payloadHash = "#{payload['before']} #{payload['after']}" + payloadCurrent = "#{payload['ref']}" 
- payloadHashBefore = File.read(shaFile) if File.exist?(shaFile)+ payloadBefore = File.read(shaFile) if File.exist?(shaFile)
  
- # Save before and after hash to compare+ # Save refs to compare on next run ...
  File.delete(shaFile) if File.exist?(shaFile)  File.delete(shaFile) if File.exist?(shaFile)
- File.write(shaFile, "#{payload['before']} #{payload['after']}")+ File.write(shaFile, "#{payload['ref']}")
  
  # Trigger Pipeline  # Trigger Pipeline
-  if payloadHashBefore != payloadHash +  if payloadBefore != payloadCurrent 
-  exec('curl --request POST --form "token=XXXXXXX" --form ref=master https://gitlab.example.org/api/v4/projects/36/trigger/pipeline')+  exec('curl --request POST --form "token=XXXXXXXXX" --form ref=master https://gitlab.domain.com/api/v4/projects/{YOUR_SATIS_PROJECT_ID}/trigger/pipeline')
  end  end
 +
 end end
 </code> </code>
gitlab_satis.txt · Last modified: 2018/11/14 16:54 by admin