diff --git a/.forgejo/workflows/publish.yml b/.forgejo/workflows/publish.yml index 4b6feb3..13effd6 100644 --- a/.forgejo/workflows/publish.yml +++ b/.forgejo/workflows/publish.yml @@ -4,15 +4,23 @@ on: push: jobs: - publish: + publish_password: runs-on: docker steps: - - run: echo All good! - run: apt-get update && apt-get install -y make - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.21" - - run: ls -la - run: make build_password + - name: test secrets + run: echo "${PASSWORD}" && bash ./scripts/publish_packages.sh "./bin" "password" + env: + LOGIN: ${{ forge.ACTOR }} + PASSWORD: ${{ secrets.PACKAGE }} + SERVER_URL: ${{ forge.SERVER_URL }} + OWNER: ${{ forge.REPOSITORY_OWNER }} + VER: latest - run: make publish_password + env: + VER: latest diff --git a/.forgejo/workflows/validate.yml b/.forgejo/workflows/validate.yml index 1eaccdd..ac4b67c 100644 --- a/.forgejo/workflows/validate.yml +++ b/.forgejo/workflows/validate.yml @@ -1,9 +1,9 @@ on: pull_request: - types: [opened, synchronize, closed] + types: [opened, closed] jobs: - test: + validate_password: runs-on: docker steps: - run: echo All good! diff --git a/Makefile b/Makefile index 8a6bf90..ccbc5c9 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,11 @@ -ARCH := amd64 arm64 -OS := linux windows darwin -NAME := password -VERSION := $(shell git describe) -BUILD := $(shell git rev-parse HEAD) +ARCH := amd64 arm64 +OS := linux windows darwin +NAME := password +AUTH_HEADER := Authorization: token ${GITHUB_TOKEN} -LDFLAGS=-ldflags "-X main.Version=${VERSION} -X main.Build=${BUILD}" +.PHONY: all build_password publish_password -.PHONY: all build - -all: build +all: build_password publish_password build_password: $(foreach GOOS, ${OS},\ @@ -17,10 +14,14 @@ build_password: )) publish_password: - $(foreach GOOS, ${OS},\ - $(foreach GOARCH, ${ARCH}, \ - $(curl --silent --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${NAME}_${GOOS}_${GOARCH}.tar.gz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${NAME}/${VER}/${NAME}_${GOOS}_${GOARCH}.tar.gz") \ - )) + $(shell curl -vvv -H "${AUTH_HEADER}" -X DELETE ${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/${NAME}/${VER}) + $(foreach GOOS, ${OS}, \ + $(foreach GOARCH, ${ARCH}, \ + $(echo "token: ${{ secrets.PACKAGES }}") \ + $(info Uploading ${NAME}_${GOOS}_${GOARCH}.tar.gz) \ + $(shell curl -vvv --user "nicolas.boufidjeline:${{ secrets.PACKAGES }}" --upload-file bin/${NAME}_${GOOS}_${GOARCH}.tar.gz ${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/${NAME}/${VER}/${NAME}_${GOOS}_${GOARCH}.tar.gz) \ + ) \ + ) clean: rm -rf bin diff --git a/scripts/publish_packages.sh b/scripts/publish_packages.sh new file mode 100644 index 0000000..b516ffa --- /dev/null +++ b/scripts/publish_packages.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo "Publish generique package" + +PATH_DIR="${1}" +NAME="${2}" +USER="${LOGIN}" +TOKEN="${PASSWORD}" + +echo "user -> ${USER}" +echo "token -> ${TOKEN}" +echo "server -> ${SERVER_URL}" +echo "owner -> ${OWNER}" + +ls "${PATH_DIR}" | while read tmp +do + curl -vvv --user "${USER}:${TOKEN}" -X DELETE "${SERVER_URL}/api/packages/${OWNER}/generic/${NAME}/${VER}/${tmp}" && \ + echo delete ok || \ + echo delete not necessarie + curl -vvv --user "${USER}:${TOKEN}" --upload-file "${PATH_DIR}/${tmp}" "${SERVER_URL}/api/packages/${OWNER}/generic/${NAME}/${VER}/${tmp}" && \ + echo upload ok || \ + echo upload fail +done \ No newline at end of file